C语言二维数组用循环如何输入数据~~急啊~!谢谢~!

看看这个程序怎么输入数据!
main()
{
inti,j,s=0,average,v[3],a[5][3];
printf("inputscore\n");
for(i=0;i<3;i++)
{
for(j=0;j<5;j++)
{scanf("%d",&a[j][i]);
s=s+a[j][i];}
v[i]=s/5;
s=0;
}
average=(v[0]+v[1]+v[2])/3;
printf("math:%d\nclanguag:%d\ndbase:%d\n",v[0],v[1],v[2]);
printf("total:%d\n",average);
}
详细说明一下!小弟才学C语言!谢谢了!

1、一般情况下,题目会给出n不大于m,m不大于几的限制条件,此时只需这样定义即可
int
a[n]m],其中n和m作为常数进行宏定义,比如
#define
n
5
#define
m
6

2、学到动态内存分配后,就不会有这样的担忧,需要时,可用malloc()函数在“堆”空间申请内存,该函数的原型是:
void
*malloc(
size_t
size
);,功能是要求系统分配大小为size个字节的堆空间,注意到该函数的分会类型是void,通过强制类型转换即可获得需要的数据类型,比如
int
*p;
p
=
(int
*)malloc(30);
如果申请成功,则返回该区域的首址,失败则返回null。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-06-03
两个循环体实现数的输入,具体如下:
(1)for(i=0;i<3;i++)
{
(2)for(j=0;j<5;j++)
{scanf("%d",&a[j][i]);
s=s+a[j][i];}
v[i]=s/5;
s=0;
}
第一次执行时,i=0(代表第一列),然后进入第二个FOR循环,它嵌在第一个里面,j从0到4,依次输入a[0][0]\a[1][0]\a[2][0]\a[3][0]\a[4][0]\a[5][0],即每一行的第一个数据,j=5 时第二层循环不再执行,跳出至外层循环,i=1,如前,输入第二列数据,直至i=3 跳出整个循环,执行average
你的这个程序,是以列为单位输入数据,这是你程序目的的需要吧,一般说来都以行为单位,即第一层终止条件和第二层的掉换即可本回答被网友采纳
第2个回答  2020-03-06
两个循环体实现数的输入,具体如下:
(1)for(i=0;i<3;i++)
{
(2)for(j=0;j<5;j++)
{scanf("%d",&a[j][i]);
s=s+a[j][i];}
v[i]=s/5;
s=0;
}
第一次执行时,i=0(代表第一列),然后进入第二个FOR循环,它嵌在第一个里面,j从0到4,依次输入a[0][0]\a[1][0]\a[2][0]\a[3][0]\a[4][0]\a[5][0],即每一行的第一个数据,j=5
时第二层循环不再执行,跳出至外层循环,i=1,如前,输入第二列数据,直至i=3
跳出整个循环,执行average
你的这个程序,是以列为单位输入数据,这是你程序目的的需要吧,一般说来都以行为单位,即第一层终止条件和第二层的掉换即可
第3个回答  2007-06-03
scanf(%d,&a[j][i])
通过嵌套循环,从这里输入数据。
相似回答