whale-1901 发表于 2020-10-4 20:39:27

一个小菜鸟逐渐崩溃

题目: 统计给定的n个数中,负数、零和正数的个数


代码如下
#include<stdio.h>
int main()
{
        int n,i,l;
        int a,b,c;
       
        scanf("%d",&n);

        a=0;
        b=0;
        c=0;
       
        for(i = 1;i<=n;i++)
        {
                scanf("%d",&l);
                if(l<0)
                        a++;
                if(l == 0)
                        b++;
                else
                        c++;
        }
       
        printf("%d %d %d\n",a,b,c);
        return 0 ;
}





当我输入6 0 1 2 3 -1 0时,输出应该是1 2 3 但是我的输出结果是124我是哪里出错了呢

zltzlt 发表于 2020-10-4 21:01:24

#include<stdio.h>
int main()
{
      int n,i,l;
      int a,b,c;
      
      scanf("%d",&n);

      a=0;
      b=0;
      c=0;
      
      for(i = 1;i<=n;i++)
      {
                scanf("%d",&l);
                if(l<0)
                        a++;
                else if(l == 0) // 修改
                        b++;
                else
                        c++;
      }
         
      printf("%d %d %d\n",a,b,c);
      return 0 ;
}

whale-1901 发表于 2020-10-4 21:04:29

zltzlt 发表于 2020-10-4 21:01


谢谢您嘞{:10_256:}

Jacksturdy 发表于 2020-10-4 21:04:50

zltzlt 发表于 2020-10-4 21:01


为啥它这加个else if就正常了?按理来说光一个if也可以,求解

zltzlt 发表于 2020-10-4 21:05:41

Jacksturdy 发表于 2020-10-4 21:04
为啥它这加个else if就正常了?按理来说光一个if也可以,求解

因为照楼主那样写如果 l 不等于 0 就会执行 c++,不管 l 是不是大于 0

Jacksturdy 发表于 2020-10-4 21:07:39

zltzlt 发表于 2020-10-4 21:05
因为照楼主那样写如果 l 不等于 0 就会执行 c++,不管 l 是不是大于 0

哦,对,我记得小甲鱼说过,else和最近的if结合,哈哈
页: [1]
查看完整版本: 一个小菜鸟逐渐崩溃