大佬求助帖!

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

ddfadacai @ 2022-11-02 21:40:58

#include<stdio.h>
int main()
{
 int a[11];
 int i,k,b;
 for(i=0;i<=8;i++)
 {

    scanf("%d",&a[i]);

  }
  scanf("%d",&a[9]);
  scanf("%d",&b);
  for(i=0;i<=9;i++)
  {
    if(a[i]<=(b+30))
    {
        k++;
      }
  }
  printf("%d",k-1);
 return 0;
 } 

by ddfadacai @ 2022-11-02 21:42:05

救救孩子,磨一天了,全是WA呜呜呜 可是我编译出来 感觉没毛病啊


by CH_mengxiang @ 2022-11-02 21:42:53

为啥k要-1


by CH_mengxiang @ 2022-11-02 21:43:27

@ddfadacai 还有你k要初始化0


by CH_mengxiang @ 2022-11-02 21:44:48

实测A了


by ddfadacai @ 2022-11-02 22:05:15

@CH_mengxiang 感谢大佬!!!可是k 如果不初始化不也是零吗?k-1是因为上机的时候,算了一下,用devc++的时候,k-1能出现正确的结果。。其实我也不知道为什么要-1


by VitrelosTia @ 2022-11-03 08:44:12

@ddfadacai 我觉得你需要重修变量定义,另外你为什么要先读8个再读1个……


by CH_mengxiang @ 2022-11-03 17:35:54

@ddfadacai 全局变量和局部变量的定义是有区别的

在全局定义的变量(可以理解为在main外面)自动初始化为0,在局部定义的变量(main或者其他函数等的里面)不人工初始化的话会变成一个随机的数(通常很大),你k-1对了纯属巧合


by ddfadacai @ 2022-11-03 17:38:56

@CH_mengxiang 哦哦,感谢大佬!我看明白了!


by ddfadacai @ 2022-11-03 17:40:03

@VT_SODC3DC3BSLF 我看那个题目要求一个换行,我就把最后一个单拎出来换行了。。。


by CH_mengxiang @ 2022-11-03 18:15:50

@ddfadacai 这是无所谓的。。。


| 下一页