回 帖 发 新 帖 刷新版面

主题:有出问题了,大哥哥大姐姐进来帮我看看

main()
{
int score ,num;
char grade;
scanf("%d,%d",&num,&score);
switch(score/10)
{
  case 10:
  case 9:grade='5';break;
  case 8:grade='4';break;
  case 7:if(score>74) {grade='4';break;}
     else   {grade='3';break;}
  case 6:grade='3';break;
  case 5:
  case 4:
  case 3:
  case 2:
  case 1:
  case 0:grade='2';break;
}
printf("%d\n%d\n,%c",num,score,grade);
getch();
}


刚刚输进去的时候呢,是没问题的,可是当我输入 学号:1分数:150。的时候
就出问题了,  
始终显示 1 -24 ,m
到底是什么地方出问题了呀!
哥哥姐姐帮我看看好吗

回复列表 (共8个回复)

沙发

150/10 等于多少,15,而你的程序中没有case 15的情况.
score 能输入的最大值是100

板凳

对呀!但是后面我输入的数都小于等于100,都不行了!

3 楼

这里有点问题
case 7:if(score>74) {grade='4';break;}
     else   {grade='3';break;}
改为case 7:{if(score>74) grade='4';
            else grade='3';} break;
再试下

4 楼

我改了。但还是不行
还是出现
1 -24 ,m

5 楼

如果是scanf("%d,%d",&num,&score);则输入为1加逗号再输入100
如果系scanf("%d%d",&num,&score);则直接系1 100
所以你应该输入1,100

6 楼

同一楼上的,并且修正了一下:
main()
{
int score ,num;
char grade;
scanf("%d%d",&num,&score);
while(1)
{ if(score<=100&&score>=0)
  break;
  else printf("input a result again:\n");
   scanf("%d",&score);
}
switch(score/10)
{
  case 10:
  case 9:grade='5';break;
  case 8:grade='4';break;
  case 7:if(score>74) {grade='4';break;}
     else   {grade='3';break;}
  case 6:grade='3';break;
  case 5:
  case 4:
  case 3:
  case 2:
  case 1:
  case 0:grade='2';break;
}
printf("%d\n%d\n,%c",num,score,grade);
getch();
}

7 楼

后面的getch()我去掉以后也可以运行,我想问一下调用这个函数的目的是做什么?

8 楼


#include "stdio.h"
#include "string.h"
main()
{
int score ,num;
char grade;
scanf("%d,%d",&num,&score);
switch(score/10)
{
  case 10:
  case 9:grade='5';break;
  case 8:grade='4';break;
  case 7:if(score>74) {grade='4';break;}
     else   {grade='3';break;}
  case 6:grade='3';break;
  case 5:
  case 4:
  case 3:
  case 2:
  case 1:
  case 0:grade='2';break;
}
printf("%d\n%d\n,%c",num,score,grade);
getch();

我运行了下,可以用

我来回复

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