ResoulㄨEvermat 发表于 2014-8-9 00:14:30

关于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");

}

ResoulㄨEvermat 发表于 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前面加&,这两个问题不懂。

ResoulㄨEvermat 发表于 2014-8-9 00:25:56


视频教程内容如上,然后我把char(c=getchar());换成了scanf ("%d",&c);后,输入不同分数就显示不同字母ABCDE,但是后面还是有个0,
求懂得大师能够讲解下,三个问题好迷糊:mad:

天天喝牛奶milk 发表于 2014-8-9 08:48:31

print里面不要加%d

ResoulㄨEvermat 发表于 2014-8-9 23:31:41

那为什么要在score前面加&啊?,不是score不是个参数吗,还有char(c=getchar());不是打印输入函数吗,为什么不能用?
谢谢大师:cry:cry:cry

剑雨君 发表于 2014-8-10 08:49:39

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

char是一种类型,是用来声明的。你那样做意义不明。scanf函数跟printf函数差不多,不过规定后面的score是要取地址的,&就是取地址符号。

shi632326403 发表于 2014-8-10 11:06:23

应该是int c;声明之后scanf进去吧
getchar貌似只能进去一个吧```(我也初学 记不清楚了 怕是和getch()搞混了求大神解释)

ResoulㄨEvermat 发表于 2014-8-10 17:03:20

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

嗯。。。大概懂啦,谢谢剑雨君:victory:

careless 发表于 2014-8-10 17:44:09

支持學習一下
页: [1]
查看完整版本: 关于if语句的练习题,按教程上学的,可自己打出来程序有问题。