鱼C论坛

 找回密码
 立即注册
查看: 2297|回复: 8

关于if语句的练习题,按教程上学的,可自己打出来程序有问题。

[复制链接]
发表于 2014-8-9 00:14:30 | 显示全部楼层 |阅读模式

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

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

x
按照小甲鱼视频学的,现在把if语句学了之后视频上有个练习题让把分数按60,60—70,70,—80,80—90,90以上按EDCBA等级显示,我自己打了代码发现有三个问题,
1:提示错误为0,并且可以执行,但是执行后输入任何数字显示E0。
代码如下:
#include<stdio.h>
void main()
{
        printf("input a score:\n");
        int c;
        char(c=getchar());
        if (c<60)
        {
               printf("This score is E%d\n");
        }
        else if (c>=60&&c<70)
        {
                printf("This score is D%d\n");
        }
        else if (c>=70&&c<80)
        {
                printf("This score is C%d\n");
        }
        else if (c>=80&&c<90)
        {
                printf("This score is B%d\n");
        }
        else if(c>=90)
            printf("This score is A%d\n");

}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-8-9 00:20:31 | 显示全部楼层
然后看了视频后,视频上的代码和我的有一点不同,在这部分我是:
        printf("input a score:\n");
        int c;
        char(c=getchar());
        if (c<60)
但是视频上的是
        int score;
        scanf("%d",&score);
        if (c<60)
我声明的是C,视频声明的score,这个都一样的吧,而我用的char(c=getchar());,视频用的scanf("%d",&score);,可是我不知道为什么我这个不能用,而且为什么要在score前面加&,这两个问题不懂。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-9 00:25:56 | 显示全部楼层
QQ截图20140809000326.png QQ截图20140809000307.png
视频教程内容如上,然后我把char(c=getchar());换成了scanf ("%d",&c);后,输入不同分数就显示不同字母ABCDE,但是后面还是有个0,
求懂得大师能够讲解下,三个问题好迷糊:mad:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-9 08:48:31 | 显示全部楼层
print里面不要加%d
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-9 23:31:41 | 显示全部楼层
那为什么要在score前面加&啊?,不是score不是个参数吗,还有char(c=getchar());不是打印输入函数吗,为什么不能用?
谢谢大师:cry:cry:cry
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-10 08:49:39 | 显示全部楼层
ResoulㄨEvermat 发表于 2014-8-9 00:20
然后看了视频后,视频上的代码和我的有一点不同,在这部分我是:
        printf("input a score:\n");
        int c;
...

char是一种类型,是用来声明的。你那样做意义不明。scanf函数跟printf函数差不多,不过规定后面的score是要取地址的,&就是取地址符号。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-10 11:06:23 | 显示全部楼层
应该是int c;声明之后scanf进去吧
getchar貌似只能进去一个吧```(我也初学 记不清楚了 怕是和getch()搞混了求大神解释)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-10 17:03:20 | 显示全部楼层
剑雨君 发表于 2014-8-10 08:49
char是一种类型,是用来声明的。你那样做意义不明。scanf函数跟printf函数差不多,不过规定后面的score是 ...

嗯。。。大概懂啦,谢谢剑雨君:victory:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-10 17:44:09 | 显示全部楼层
支持學習一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-30 02:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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