qq_31609101
2016-03-02 07:53
采纳率: 100%
浏览 2.5k
已采纳

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条回答 默认 最新

  • blownewbee 2016-03-02 13:17
    已采纳
     int a[M][N],b[M];
    你b定义成N,越界了,修改b[M]结果去修改a[0][0]了
    
    点赞 打赏 评论
  • YXTS122 2016-03-02 11:15

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

    点赞 打赏 评论
  • YXTS122 2016-03-02 13:53

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

    点赞 打赏 评论

相关推荐 更多相似问题