C语言【问题描述】 将一个二维矩阵的数据复制到另一个矩阵里。 【输入形式】 3行数据,每行3个数,用空格分隔 【输出形式】 3行数据,每行3个数,用空格分隔 【样例输入】 1 2 3 4 5 6 7 8 9 【样例输出】 1 2 3 4 5 6 7 8 9 #include <stdio.h> void myCopy(int (*f)[3],int (*t)[3]); int main() { int a[3][3],b[3][3],*p,i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); myCopy(a,b); for(i=0;i<3;i++) { for(j=0;j<3;j++) { printf("%d ",*p); p++; } printf("\n"); } return 0; } void myCopy(int (*f)[3],int (*t)[3]) { int i,j; for(i=0;i<3;i++) { for(j=0;j<3;j++) *(t[0]+j)=*(f[0]+j); } }
时间: 2024-01-02 21:05:22 浏览: 59
C语言判断一个二维数组是否为上三角矩阵的示例代码.pdf
代码存在一些问题,需要进行修改。下面是修改后的代码:
```c
#include <stdio.h>
void myCopy(int (*f)[3], int (*t)[3]);
int main() {
int a[3][3], b[3][3], *p, i, j;
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
scanf("%d", &a[i][j]);
}
}
myCopy(a, b);
p = &b[0][0];
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
printf("%d ", *p);
p++;
}
printf("\n");
}
return 0;
}
void myCopy(int (*f)[3], int (*t)[3]) {
int i, j;
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
t[i][j] = f[i][j];
}
}
}
```
主要问题在于:
- 在`myCopy`中的复制操作有误,应该使用`t[i][j] = f[i][j]`进行赋值。
- 在`main`函数中,需要将指针`p`指向数组`b`的首元素,即`p = &b[0][0]`。
- 在输出时,每个数字后面需要加一个空格,即`printf("%d ", *p)`。
另外,代码中的缩进不太规范,应该统一使用四个空格进行缩进。
阅读全文