问题出在哪里?

P1046 [NOIP2005 普及组] 陶陶摘苹果

一柯yike @ 2017-05-27 11:28:01

#include<stdio.h>
int main(){
int a[10],n;
for(n=0;n<=10;n++)
{
   scanf("%d",&a[n]);
}
int taoh;
scanf("%d",&taoh);
int b,sum;
for(b=0;b<=10;b++)
{
    if(a[b]<=(taoh+30))
        sum++;
}
printf("%d",sum);
return 0;
}

by Tsukimaru @ 2017-05-28 15:31:21

你没有初始化sum=0。

另外,第二个for和第一个for可以共用一个变量n。

只有在嵌套的时候才要用多个变量。例如下面这个:

for(i=0;i<5;i++)
    for(j=0;j<5;j++)
        printf("%d%d ",i,j);

by hhc2012 @ 2023-07-23 11:20:23

当b = 10的时候,数组越界了。

当n = 10的时候,不但数组越界了,而且还多读入了一个。

a[10] 只有 a[0] ~ a[9],没有a[10]。

应该是: for(n=0;n<10;n++) 和 for(b=0;b<10;b++)


|