程序问题,求助
#include"stdio.h"
double copy_ptr(double *a,double *b,int n);
int main()
{
int i=0,j=0;
double source[][4]={{1.0,2.0,3.0,4.0},{4.0,5.0,6.0,7.0},{8.0,9.0,5.0,7.0}};
double target[][4]={0.0};
copy_ptr(source[],target[],4);
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
printf("%lf",target[i][j]);
}
}
double copy_ptr(double *a,double *b,int n)
{
int i=0;
while(i<n)
{
*b++=*a++;
i++;
}
}
上面的程序要实现,把一个二维数组复制到另一个二维数组中去
我写的没法实现.高手帮忙看下,多谢了
[解决办法]
"还有那里有错 "
呵呵,你程序总共才几行啊
剩下的估计就是写copy_ptr的函数体了
你原来的copy_ptr的函数体内的语句可以全部删除了
除了 int i=0; 那行
不过最好你改成 int i;
因为我看不惯int i=0;
[解决办法]
下面这种方法可以实现你要的功能,但是这个忽略了数组维数的概念
- C/C++ code
#include <stdio.h> void copy_ptr(double *a, double *b, int n);int main() { int i = 0, j = 0; double source[][4] = {{1.0,2.0,3.0,4.0}, {4.0,5.0,6.0,7.0}, {8.0,9.0,5.0,7.0}}; double target[][4]={0.0}; copy_ptr(&source[0][0], &target[0][0], 16); for (i = 0; i < 3; i++) { for (j = 0; j < 4; j++) { printf("%lf ", target[i][j]); if (j == 3) printf("\n"); } } } void copy_ptr(double *a, double *b, int n) { int i = 0; while(i < n) { *b++ = *a++; i++; } }