回 帖 发 新 帖 刷新版面

主题:一道c语言题目  向大家请教!!

#include"stdio.h"
main()
{
   int i,score,
     x=0,y=0,z=0;
   for(i=1;i<=10;i++)
     {scanf("%d\t",&score);
      if(score>=0&&score<=100)
     {if(score<60)
        x++;
      else
        {if(score<=90&&score>=60)
          y++;
          else
           z++;
        }
      }
       else
      {printf("error!try again!\n");
        i--;
        continue;
       }
      }
     printf("x=%d\ty=%d\tz=%d\n",x,y,z);
     return 0;
}


这个程序是求分别输入10个学生的成绩  然后求出成绩在60分以下,60分到90分之间以及90分以上的学生个数,
当我运行时输入不在0到100分之间的数时  并没有马上有提示信息:"error!try again!"
这是为什么啊?

回复列表 (共7个回复)

沙发

这句话改成scanf("%d\t",&score);
scanf("%d",&score);去掉\t 就可以了 !!

板凳


恩楼上的说得对,楼主努力哦
呵呵有时间光临我的网站一下,http://online366.cctve.cn/
学生创业联盟,欢迎加盟哦

3 楼

呵呵。。。。

4 楼

我也经常犯这种低级错误

5 楼

[quote]这句话改成scanf("%d\t",&score);
scanf("%d",&score);去掉\t 就可以了 !![/quote]

6 楼

可能是最后else 的continue一个的问题,因为它是跳出本次循环,并没有执行这条语句,删去它试试!!!

7 楼


最好用switch ,既简单又简洁!

我来回复

您尚未登录,请登录后再回复。点此登录或注册