#include <stdio.h>
int main(){
int a[2][3];
int b[3][2];
int i,j;
printf("Please input 6 numbers for array a:");
for(i=0;i<=1;i++)
for(j=0;j<=2;j++)
scanf("%d",&a[i][j]);
printf("array a:\n");
for(i=0;i<=1;i++){
for(j=0;j<=2;j++){
printf("%d ",a[i][j]);
b[j][i]=a[i][j];
}
printf("\n");
}
printf("array b:\n");
for(i=0;i<=2;i++){
for(j=0;j<=1;j++)
printf("%d ",b[i][j]);
printf("\n");
}
return 0;
}
a二维数组总共就6个元素,怎么跑出来a[0]到a[9]了呢
有什么问题呢?a只要6个元素哦。
将数组下标改为a[2][5]后将循环次数修改一下即可
#include <stdio.h>
int main(){
int a[2][5];
int b[2][5];
int i,j;
printf("Please input 9 numbers for array a:");
int number=0;
for(i=0;i<=1;i++)
for(j=0;j<=4;j++)
{
a[i][j]=number;
number+=1;
}
printf("array a:\n");
for(i=0;i<=1;i++){
for(j=0;j<=4;j++){
printf("%d ",a[i][j]);
b[j][i]=a[i][j];
}
printf("\n");
}
printf("array b:\n");
for(i=0;i<=2;i++){
for(j=0;j<=1;j++)
printf("%d ",b[i][j]);
printf("\n");
}
return 0;
}
修改后运行如下