标题:初学,输入分数自动分类.有个错误。
只看楼主
xiao33477
Rank: 1
等 级:新手上路
帖 子:26
专家分:6
注 册:2012-1-4
结帖率:100%
已结贴  问题点数:20 回复次数:7 
初学,输入分数自动分类.有个错误。
main()
{
    int fs;
    scanf("%d",&fs);
    fs=fs/10;
    switch(fs)
    {
        case 0:
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:printf("0");break;
        case 6:printf("1");break;
        case 7:printf("2");break;
        case 8:printf("3");break;
        case 9:printf("4");break;
        case 10:printf("5");break;
        default:printf("F");
    }
    getch();
}上面的代码,发现100以上的数能输入,怎样才能让超过100的分数进入default的范围?、?就是100分以上也报错呢?
搜索更多相关主题的帖子: default 怎样 100分 
2012-01-09 22:55
朝小树
Rank: 1
等 级:新手上路
帖 子:1
专家分:5
注 册:2012-1-9
得分:5 
最渣的方法。
main()
{
    int fs, intMod;
    scanf("%d",&fs);
    intMod = fs%100;
    fs=fs/10;
    if(intMode != 0);
    {
        printf("F");
        return 0;
    }
    switch(fs)
    {
        case 0:
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:printf("0");break;
        case 6:printf("1");break;
        case 7:printf("2");break;
        case 8:printf("3");break;
        case 9:printf("4");break;
        case 10:printf("5");break;
        default:printf("F");
    }
    getch();
}
2012-01-09 23:19
张灏轩
Rank: 2
来 自:浙江湖州
等 级:论坛游民
帖 子:16
专家分:18
注 册:2011-10-2
得分:5 
#include "stdio.h"
int main()
{
    int fs;
    scanf("%d",&fs);
    if(fs<=100||fs>=110)
    {
        fs=fs/10;
        switch(fs)
        {
        case 0:
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:printf("0");break;
        case 6:printf("1");break;
        case 7:printf("2");break;
        case 8:printf("3");break;
        case 9:printf("4");break;
        case 10:printf("5");break;
        default:printf("F");
        }
    }
    else
        printf("F");
    return 0;
}
2012-01-10 12:22
alexkh
Rank: 2
等 级:论坛游民
帖 子:37
专家分:66
注 册:2011-12-8
得分:10 
程序代码:
main()
{
    int fs;
    scanf("%d",&fs);
    fs=fs/10;
    if(fs<0||fs>10) printf("F");
    else{
    switch(fs)
    {
        case 0:
        case 1:
        case 2:
        case 3:
        case 4:
        case 5:printf("0");break;
        case 6:printf("1");break;
        case 7:printf("2");break;
        case 8:printf("3");break;
        case 9:printf("4");break;
        case 10:printf("5");break;
        default:printf("F");
    }}
    getch();
}
2012-01-10 19:09
xiao33477
Rank: 1
等 级:新手上路
帖 子:26
专家分:6
注 册:2012-1-4
得分:0 
回复 2楼 朝小树
if(intMode != 0);
 这段多了个e,我运行,输入一个数字,就回车就自动关闭了。。  请问你试过能用吗?
我把,return 0和if 后面的“;”删除,再加上一个else,程序能运行,不过,我输入100以下的数却显示的是F。
main()
 {
     int fs, intMod;
     scanf("%d",&fs);
     intMod = fs%100;
     fs=fs/10;
     if(intMod != 0)
     {
         printf("F");
     }
     else
     {
     switch(fs)
     {
         case 0:
         case 1:
         case 2:
         case 3:
         case 4:
         case 5:printf("0");break;
         case 6:printf("1");break;
         case 7:printf("2");break;
         case 8:printf("3");break;
         case 9:printf("4");break;
         case 10:printf("5");break;
         default:printf("F");
     }}
     getch();
 }


[ 本帖最后由 xiao33477 于 2012-1-10 23:06 编辑 ]
2012-01-10 22:56
xiao33477
Rank: 1
等 级:新手上路
帖 子:26
专家分:6
注 册:2012-1-4
得分:0 
回复 3楼 张灏轩
你的程序我运行不了啊。请问你试运行了没啊?
  我用的win-tc,不晓得是不是编译器的问题呢、
2012-01-10 23:13
xiao33477
Rank: 1
等 级:新手上路
帖 子:26
专家分:6
注 册:2012-1-4
得分:0 
回复 4楼 alexkh
谢谢4楼这位朋友,你的我看了觉得最正确,不过我还是发现了点漏洞。
就是if(fs<0||fs>10) printf("F");   如果输入104等数fs=fs/10的结果还是10,所以在101~109之内的答案还是不正确。
我在你的基础上改进了一下,结果就好了。
还是要先谢谢这位朋友的帮忙!!
谢谢楼上的各位了!!!
main()
 {
     int fs;
     scanf("%d",&fs);
     if(fs<0||fs>100) printf("F");
     else
     {
     fs=fs/10;
     switch(fs)
     {
         case 0:
         case 1:
         case 2:
         case 3:
         case 4:
         case 5:printf("0");break;
         case 6:printf("1");break;
         case 7:printf("2");break;
         case 8:printf("3");break;
         case 9:printf("4");break;
         case 10:printf("5");break;
         default:printf("F");
     }}
     getch();
 }
2012-01-10 23:21
Abiosis
Rank: 2
等 级:论坛游民
帖 子:13
专家分:33
注 册:2012-1-12
得分:0 
这个是这样的   如果你输入的是101~109那么被除之后的到的是int型的  所以还是10  你的改下这个方法
2012-01-12 11:23



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




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

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