2 qq 31609101 qq_31609101 于 2016.03.02 15:53 提问

C语言使用随机分布函数rand()%100;但是二维数组a[0][0]的值大于100,其他正常

#include
#include
#define M 5
#define N 4
void china(int a[][N],int b[M]);/*给二维数组随机分配数值,并求二维数组每行数值之和*/
void orange(int a[][N],int b[M]);/*将付好值得数组和求和打印出来*/

void main()
{int a[M][N],b[N];
china(a,b);
orange(a,b);
}

void china(int a[][N],int b[M])
{int i,j,ave;
for(i=0;i<M;i++)
{ ave=0;
for(j=0;j<N;j++)
{
a[i][j]=rand()%100;/*对数组随机分配数值*/
ave=ave+a[i][j];/*求每行数值的和*/
}
b[i]=ave;
}
}

void orange(int a[][N],int b[M])
{int i,j;
for(i=0;i<M;i++)
{for(j=0;j<N;j++)
{printf("%6d",a[i][j]);/*打印二维数组*/
}
printf("%6d\n",b[i]);/*打印每行数组之和*/

}

}

3个回答

caozhy
caozhy   Ds   Rxr 2016.03.02 21:17
已采纳
 int a[M][N],b[M];
你b定义成N,越界了,修改b[M]结果去修改a[0][0]了
YXTS122
YXTS122   2016.03.02 21:53

main()函数里的b[n]改为b[m]。。。。。。

caozhy
caozhy 回复YXTS122: 呵呵,说的我不好意思了。
接近 2 年之前 回复
YXTS122
YXTS122 不好意思,网络不好,没看到有人回答,重复回答了,当我什么都没回答,不要采纳我。
接近 2 年之前 回复
YXTS122
YXTS122 不好意思,网络不好,没注意到有人回答,所以重复回答了,当我什么也没回答就是了。。。
接近 2 年之前 回复
YXTS122
YXTS122   2016.03.02 19:15

srand(time(0));加上这一句试试

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!