鱼C论坛

 找回密码
 立即注册
查看: 4071|回复: 7

是一个死循环

[复制链接]
发表于 2011-4-5 22:47:20 | 显示全部楼层 |阅读模式

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

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

x
#include<stdio.h>
void main()
{
    double a,score;
        printf("please input a score\n");
        scanf("%f",&a);
        score=a;
        if(a<60)
        {
                printf("%c\n",69);
        }
        else if((a>60||a==60)&&a<70)
        {
                printf("%c\n",68);
        }
        else if((a>75||a==75)&&a<80)
        {
          printf("%c\n",67);
        }
        else if((a>80||a==80)&&a<90)
        {
          printf("%c\n",66);
        }
        else if(a>90||a==90)
        {
              printf("%c\n",65);
        }

}

请问这个程序我到底错在哪里?我一时想不通,还有最后一定要以esle结束吗?谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-6 11:41:10 | 显示全部楼层
回复 1# xiang__jie


    程序没有问题,不过有些地方可以删减下~
    不用一定要再最后加else,我这里帮你加上是因为补全思路而已~呵呵
#include<stdio.h>
void main()
{
        double a, score;
        printf("please input a score\n");
        scanf("%f", &a);
        score = a;

        if( a < 60 )
        {
                printf("%c\n", 69);
        }
        else if( a < 70 )
        {
                printf("%c\n",68);
        }
        else if( a < 80 )
        {
          printf("%c\n",67);
        }
        else if( a < 90 )
        {
          printf("%c\n",66);
        }
        else if( a == 90 )
        {
              printf("%c\n",65);
        }
        else
        {
              printf("请输入小于或等于90的数字:\n");
        }
}

 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-4-6 12:17:30 | 显示全部楼层
首先先谢谢小甲鱼老师的回复与帮助,不过我把老师您给我的程序编译了一下还是不行,无论输入什么数字都是输出显示为E
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-6 23:26:12 | 显示全部楼层
回复 3# xiang__jie
甲鱼哥的代码里,double a和scanf("%f", &a);的a类型不同,造成了点影响,可能与内存存储或读取方式有关吧(我也不清楚)。只要把两个a的类型统一了就行了,我测试了的,可以行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-6 23:33:25 | 显示全部楼层
回复 2# 小甲鱼
甲鱼哥, 没想到你还犯如此低级的错误哦!那个double a和scanf("%f", &a),两个类型都不一致。你的程序结果都是E,不过改过来的话就ok了。虽然知道怎样改,但是对此我很是疑惑:为什么两个类型不一致就出现这种问题啊?我把程序反汇编了一下,不过能力有限(看不懂) 。还望甲鱼哥指点指点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-6 23:59:35 | 显示全部楼层
回复 5# 故乡的风


    哎呀,我还就只改了语法,发现能编译能输出哈~我的错我的错~

    scanf("%lf", &a); 和 scanf("%f", &a); 哥们不用进入反汇编那么麻烦哈~
    如果将四位的数输入到(%f四位)定义的double型(8位)变量中,会引发很大的错误。
   因为浮点型数据并不是简单的以低位到高位存放数据的,有一个IEEE啥门子机器编码约定的。
   所以会得到的是一个类似于这样-9.2559604860790910e+061的乱码,因为尾数位和阶码位打乱了~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-4-9 00:23:18 | 显示全部楼层
哈。。我刚刚学到IF语句。我感觉嘛,IF语句不是控制一个语句么?为什么楼主的IF后面要加那么多{}
你的IF后面基本都是一句的
感觉不太美观。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-4 08:15:27 | 显示全部楼层
回复 小甲鱼 的帖子

那个能直接复制的剪贴板是怎么弄出来的,教教我吧!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-2-6 07:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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