
#include"stdio.h"
#include"stdlib.h"
#define M 6
#define N 8
int main()
{
int i,j,a[M][N];int num;for(i=0;i<M;i++){for(j=0;j<N;j++){a[i][j]=rand()%100;printf("%5d",a[i][j]);}printf("\n");}printf("不合格科目大于三\n");for(i=0;i<M;i++){for(j=0;j<N;j++){num=0;if(a[i][j]<60)num++;}}for(i=0;i<M;i++){for(j=0;j<N;j++){if(num>=3)printf("%5d",a[i][j]);}}return 0;}
你最后想要输出什么呢?
你在判断完num的值是否大于3的之后,输出a[i][j],但是你没有考虑到此时j的值此时是多少,j在走完一趟循环后,j=N,也就是说数组越界了。如果我的回答有用,请点击采纳!