2 qq 27416233 qq_27416233 于 2016.04.19 21:12 提问

为什么会出现 这样的 错误.第一次遇到. 病毒什么鬼.求大神 解答

#include
int main()
{
int Array[][10]={0};
int Array1[100];
int N,i,j,sum=0;
int High;
scanf("%d",&N);
//************************************赋值
for(i = 0; i < N ; i++)
{
for(j = 0; j < 10; j++)
{
scanf("%d",&Array[i][j]);

}
}
//****************************
scanf("%d",&High);
//*************************************判断
for(i = 0; i < N ; i++)
{
for(j = 0; j < 10; j++)
{
if(Array[i][j]<=(High+30))
{
sum++;
}

}
Array1[i] = sum;
sum = 0;
}
for(i = 0; i < N; i++)
{
printf("%d",Array1[i]);
printf("\n");
}

return 0;
}

3个回答

qq_27416233
qq_27416233   2016.04.19 21:15

图片说明

qq_27416233
qq_27416233   2016.04.19 21:15

图片说明

qq423399099
qq423399099   Ds   Rxr 2016.04.19 22:04

int Array[][10]={0};这样定义二维数组的方式不对
这样相当于int Array[1][10]={0};只是定义了一个一行十列的数组
楼主输入两行的数据越界读写了,程序自然崩了
改成大点的二维数组就行了int Array[10][10]={0};
如果是GCC编译器还支持动态创建

int N,i,j,sum=0;
scanf("%d",&N);
int Array[N][10]={0};
int Array1[100];
int High;

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