标题:退出来怎么弄???
只看楼主
勤不移
Rank: 2
等 级:论坛游民
帖 子:12
专家分:20
注 册:2011-7-21
结帖率:100%
已结贴  问题点数:5 回复次数:11 
退出来怎么弄???
//成绩打印0-100,输入X可以退出//
#include<stdio.h>

void main()
{
    int grade,leve,loop;
    char v='X';
loop:printf("input a number:\ngrade=");
  scanf("%d",&grade);
  
  while(grade>100||grade<0)
  {   
      printf("重新输入正确的数\ngrade=");
      scanf("%d",&grade);
      
  }
  leve=grade/10;
  switch(leve)
  {
  case 0:
  case 1:
  case 2:
  case 3:
  case 4:
  case 5:printf("成绩等级:E\n");break;
  case 6:printf("成绩等级:D\n");break;
  case 7:printf("成绩等级:C\n");break;
  case 8:printf("成绩等级:B\n");break;
  default :printf("成绩等级:A\n");
  }
  goto loop;
}
这个写的是正确,但是我想输入‘X’按回车键能自动退出,请各位帮帮忙啊!
搜索更多相关主题的帖子: include number 输入正确 input while 
2011-07-23 14:11
为我留住记忆
Rank: 4
来 自:北京
等 级:业余侠客
帖 子:130
专家分:226
注 册:2011-4-30
得分:1 
加上case'x':break;


这样不行吗

学习c是为了自己更强大。。。
2011-07-23 15:21
勤不移
Rank: 2
等 级:论坛游民
帖 子:12
专家分:20
注 册:2011-7-21
得分:0 
回复 2楼 为我留住记忆
不行啊,最后变成死循环了
2011-07-23 15:38
pengzhangzha
Rank: 2
等 级:论坛游民
帖 子:10
专家分:10
注 册:2011-7-3
得分:1 
咋还用goto 语句啊..
2011-07-23 15:42
为我留住记忆
Rank: 4
来 自:北京
等 级:业余侠客
帖 子:130
专家分:226
注 册:2011-4-30
得分:0 
你在while循环里用一个判断语句。。。。


也就是如果输入的分数是x的asscii码就跳出循环

学习c是为了自己更强大。。。
2011-07-23 16:24
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
得分:1 
case x:exit(0);

我们都在路上。。。。。
2011-07-23 16:56
勤不移
Rank: 2
等 级:论坛游民
帖 子:12
专家分:20
注 册:2011-7-21
得分:0 
回复 4楼 pengzhangzha
“X”,的ASCII字符码也包含在一百内啊,还是退不出来啊
2011-07-23 18:14
勤不移
Rank: 2
等 级:论坛游民
帖 子:12
专家分:20
注 册:2011-7-21
得分:0 
回复 5楼 为我留住记忆
不行啊,有错误的
2011-07-23 18:16
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
得分:1 
程序代码:
int n,i;
char a[5];
while(1)
{gets(a);
if(strcmp(a,"X")==0||strcmp(a,"x")==0)
break;
for(i=0;i<strlen(a);i++)
if(a[i]>47&&a[i]<='9')
continue;
else break;
if(i<strlen(a))
continue;
n=atoi(a);
if(n>100||n<0)
continue;
switch(n/10)
  {
  case 0:
  case 1:
  case 2:
  case 3:
  case 4:
  case 5:printf("成绩等级:E\n");break;
  case 6:printf("成绩等级:D\n");break;
  case 7:printf("成绩等级:C\n");break;
  case 8:printf("成绩等级:B\n");break;
  default :printf("成绩等级:A\n");
  }
}
楼主蛋疼!按esc不行么?
2011-07-23 19:25
zjslwyp
Rank: 2
等 级:论坛游民
帖 子:42
专家分:76
注 册:2011-3-24
得分:1 
我在你的程序上改了一下,你参考下吧。我运行了可以,只要输入非数字就能退出。程序如下:
#include<stdio.h>
int main(void)
{
    int grade,leve;
    printf("input a number:\ngrade=");
    while(scanf("%d",&grade)!=0)
    {
          if(grade>100||grade<0)
          {   
              printf("chongxin shuru zhengque de shu:\ngrade=");
            continue;
        }        
          leve=grade/10;
           switch(leve)
           {
               case 0:
               case 1:
               case 2:
               case 3:
               case 4:
               case 5:printf("chengji dengji:E\n");break;
              case 6:printf("chengji dengji:D\n");break;
               case 7:printf("chengji dengji:C\n");break;
               case 8:printf("chengji dengji:B\n");break;
               default :printf("chengji dengji:A\n");
          }
         printf("qing jixu shu ru:\ngrade=");
    }
    printf("xie xie shi yong!\n");
    return 0;
}

[ 本帖最后由 zjslwyp 于 2011-7-24 00:29 编辑 ]
收到的鲜花
  • 勤不移2011-07-24 12:02 送鲜花  3朵   附言:我很赞同
2011-07-24 00:23



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-345920-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033794 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved