输入格式里不要添加空格(你用了: "%d ") 。改用 scanf("%d", a[j][i]); 就可以了。
创新互联长期为1000多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为昆山企业提供专业的网站制作、做网站,昆山网站改版等技术服务。拥有10余年丰富建站经验和众多成功案例,为您定制开发。
输入的数据 用空格 或 换行符分隔即可。
int a[8][8];
for(i = 0; i 8 ;i ++)
for( j = 0; j 8; j++)
scanf("%d", a[i][j]);
那句scanf也可以这样写
scanf("%d", a[i]+j);
#include stdio.h
#include stdlib.h
int main()
{
int a[2][2];
int i,j;
for (i=0;i2;i++)
{
for (j=0;j2;j++)
{
scanf("%d ",a[i][j]);
}
}
for(i=0;i2;i++)
for(j=0;j2;j++)
printf("%d",a[i][j]);
return 0;
}
运行成功
scanf那行里的a[i][j]要写成a[i][j],输入就正常的输入就行了,其实scanf读入数字的时候,数字可以用空格、回车或者TAB间隔,比如说一个2x2的数组,你输入
10 11
12 13
或者输入10 11 12 13都是可以的。
其实并不存在真正的“二维”,只不过是C编译器自动的将它 一行一行的保存成了一维信息。所以,二维数组的输入只要用双重循环即可,比如:
int a[11][11];
for(int i=0; i10; i++){
for(int j=0; j10; j++){
scanf("%d",a[i][j]);
}
}
其实 int a[3][3] 可以这样初始化:
int a[3][3] = {0,1,2,3,4,5,6,7,8};
编译器会自动的将线性信息写入二维数组中。
这样传:
函数声明:Func(变量类型 *[二维数组的列长] arry);
char arry[][4] ;
Func(arry);