关于if语句的练习题,按教程上学的,可自己打出来程序有问题。
按照小甲鱼视频学的,现在把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");
} 然后看了视频后,视频上的代码和我的有一点不同,在这部分我是:
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前面加&,这两个问题不懂。
视频教程内容如上,然后我把char(c=getchar());换成了scanf ("%d",&c);后,输入不同分数就显示不同字母ABCDE,但是后面还是有个0,
求懂得大师能够讲解下,三个问题好迷糊:mad:
print里面不要加%d 那为什么要在score前面加&啊?,不是score不是个参数吗,还有char(c=getchar());不是打印输入函数吗,为什么不能用?
谢谢大师:cry:cry:cry ResoulㄨEvermat 发表于 2014-8-9 00:20
然后看了视频后,视频上的代码和我的有一点不同,在这部分我是:
printf("input a score:\n");
int c;
...
char是一种类型,是用来声明的。你那样做意义不明。scanf函数跟printf函数差不多,不过规定后面的score是要取地址的,&就是取地址符号。 应该是int c;声明之后scanf进去吧
getchar貌似只能进去一个吧```(我也初学 记不清楚了 怕是和getch()搞混了求大神解释) 剑雨君 发表于 2014-8-10 08:49
char是一种类型,是用来声明的。你那样做意义不明。scanf函数跟printf函数差不多,不过规定后面的score是 ...
嗯。。。大概懂啦,谢谢剑雨君:victory: 支持學習一下
页:
[1]