#include<stdio.h>
void copy(int ,double(*)[], double(*)[], int);
void display(int, double(*)[], int);
int main(void)
{
double a[3][5] = { { 1, 2, 3, 4, 5 }, { 4, 5, 6, 7, 8 }, { 7, 8, 9, 10, 11 } };
double b[3][5] ={0};
copy(5,a, b, 3);
display(5,b, 3);
return 0;
}
void copy(int COLS, double(*source)[COLS], double target[][COLS], int rows)
{
编写一个程序,初始化一个3x5 的二维double 数组,并利用一个基于变长数组的函
数把该数组复制到另一个二维数组。还要编写。个基于变长数组的函数来显示两个数组的内
容。
int i, j;
for (i = 0; i<rows; i++)
for (j = 0; j<COLS; j++)
target[i][j] = source[i][j];
}
void display(int COLS1, double(*p)[COLS1], int rows)
{
int i, j;
for (i = 0; i<rows; i++)
{
for (j = 0; j<COLS1; j++)
printf("%g\t", p[i][j]);
printf("\n");
}
}
————————————————————————————————————
错误挺多的,求帮忙修改
// 把a, b都改成动态数组就好了,抱歉我不是很会用c,用的c++
// 改一下new -> malloc应该就可以了
#include<stdio.h>依然报错
你的编译器的问题,不支持省略参数形式吧。我gcc是可以编译通过的。你用的是什么编译器?
追问vs2013 规定让用的没办法改 那需要怎么改改呢? 谢谢
追答你都知道了数组的长度了,要不就直接定义得了
void copy(int COLS, double source[][5], double target[][5], int rows);
void display(int COLS1, double p[][5], int rows);
他这个题是希望要可以改变m和n,算基于变长数组的题目,所以才这么麻烦定义。没有别的办法了吗?
追答void copy(int COLS, double source[][COLS], double target[][COLS], int rows);
void display(int COLS1, double p[][COLS1], int rows);