鱼C论坛

 找回密码
 立即注册
查看: 2587|回复: 6

c语言课程设计问题。。。急求啊

[复制链接]
发表于 2012-5-22 16:35:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 聆空猫猫 于 2012-5-23 09:31 编辑

复制代码

一段代码运行的时候要进行选择,但是老师在验收的时候输入了字符,导致运行崩溃了。。。
我想问一下,如何可以使输入的不是数字的时候,可以使运行时不崩溃,而且提示错误请重新输入。。。。
那个代码大致上是这样的。。。
int chg;
printf("\n1.´\n2.\n3.\n4.É\n5.\n6.\n7.\n");
printf("\n\请输入选项:");
scanf("%d", &chg);

switch (chg)
{
case 1:{}

case 2:{}
case 3:{}
case 4:{}
case 5:{}
case 6:{}
case 7:{}
}

小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-5-22 18:04:14 | 显示全部楼层
不知所云!什么程序下?控制台?win32程序?没源代码,不晓得!!!
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-5-22 18:05:54 | 显示全部楼层
如果是控制台的话,你可以在接受输入以后,进行判断,如果不是数值就提示错误,重新输入嘛
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-5-22 18:33:15 | 显示全部楼层
本帖最后由 剑蝶 于 2012-5-22 18:34 编辑

int check(string str)
{
        for(int i=0;i<str.length();i++)
        {
                if((str[i]>'9'||str[i]<'0')&&(str!='.'))
                        return 0;
        }
        return 1;;
}
先调用上面程序
while(!check(str))
        {
                cout<<"输入的不是数字,请重新输入,按0返回!!!"<<endl;
                cin>>str;
        }
    int m=atoi(str.c_str());
[/i][/i]
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-5-24 19:17:39 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-5-24 19:41:28 | 显示全部楼层
剑蝶 发表于 2012-5-22 18:33
int check(string str)
{
        for(int i=0;i'9'||str

c语言。。。而且我是在选择语句的时候输入了字符导致了运行崩溃。。。。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-5-24 23:47:35 | 显示全部楼层
  1. #include<stdio.h>

  2. int check(char a[])

  3. {int i;



  4.       for( i=0;i<strlen(a);i++)
  5.      {
  6.             if((a[i]>'9'||a[i]<'0')&&a[i]!='.')
  7.          return 0;
  8.       }
  9.       return 1;
  10. }


  11. void main()

  12. {   char str[15]={0};

  13. int chg;

  14. printf("\n\请输入选项:");
  15. scanf("%s", str);

  16. while(!check(str))
  17. {
  18. printf("输入的不是数字,请重新输入\n");


  19. scanf("%s", str);
  20. }
  21. chg=atoi(str);


  22. switch (chg)
  23. {
  24. case 1:   printf("1")         ;break;
  25. case 2:   printf("2")     ;break;
  26. case 3:    printf("3")   ;break;
  27. case 4: printf("4") ;break;
  28. case 5: printf("5")  ;break;
  29. case 6: printf("6")  ;break;
  30. case 7:  printf("7") ;break;
  31. }

  32. }
  33. 这是基本的,自己可以具体化。

复制代码
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-13 10:50

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表