使用的平台是 devc++
目标是想要将 0 到 100 分,分成 abcde 五个等级
#include <stdio.h>
int main()
{ int grade; printf("请输入你的成绩:"); scanf("%d\n",&grade); if ( grade>=90 ) { printf("你本次测验的成绩为 A"); } else if ( 80<=grade < 90) { printf("你本次测验的成绩为 B"); } else if ( 70<=grade < 80 ){
printf("你本次的测验的成绩为 C");
} else if (60<=grade < 70){
printf("你本次测验成绩为 D");
}
else if ( grade < 60){
printf("你本次测验的成绩为 E");
}
return 0;
}
出现的问题,运行时只要输入低于 80 的分数,结果都只会显示成 B 且输入数字按下回车后需要再输入数字才能出结果
目标,设计一个让用户猜数字大小并能够让用户知道自己猜了多少次的小游戏
#include <stdio.h> int main() { int number = 55; int count = 0; double a; do { scanf("%lf\n", &a); count++; if ( a > number ){
printf("大了");
}
else if ( a < number ){
printf("小了");
}
}
while ( a != number );
printf("总共耗费%d 次猜对", count);
return 0;
}
问题,在运行里输入的次数必须是两次才会进行一次判定,且会计入总猜题数
1
Tucao 2021-10-18 00:32:08 +08:00
最好对着一本合适的入门书,先敲敲代码,课后练习也做一做。
这种程度基本功,后面的问题只会越来越多。如果你打算每次遇到小问题就发帖问的话当我没说。 |
2
wevsty 2021-10-18 00:37:53 +08:00
建议先排版好再问问题。
问题 1:70<=grade < 80 这里错在哪里自己想想。 问题 2: 浮点数和整数比较相等永远都是有风险的,为什么,自己想想。 |
3
ayase252 2021-10-18 00:42:00 +08:00 via iPhone
当 grade = 80
80 <= grade < 90 的结果是什么? |
4
CEBBCAT 2021-10-18 01:01:06 +08:00
贴代码可以用 Gist 、Pastebin 之类的东西,或者学一下 Markdown 语法,这样才能把代码贴得比较好。
我记得 C/C++里面应该不能连续比较,就像"80<=grade < 90"这样,刚才 Google 了一下也说是不行。你是从 Python 带过来的知识吗?切换语言的时候最好看一下简单的介绍。 另外,关于连续的 if else,其实可以做成分开的,然后如果进入 if 里面,就直接 return 就好了,或者让程序干脆走到底。 |
5
Procumbens 2021-10-18 01:27:08 +08:00
80<= grade < 90 的结果一定是 true
因为 80<=grade 的判断结果为布尔结果,转化为整数就是 0 或 1,这个值是一定小于 90 的。 要判断区间的话就是 80 <= grade && grade < 90 。 |
6
windyskr 2021-10-18 01:28:37 +08:00 via Android
这不是谭浩强 C 语言教材的课后习题吗...
|
7
villivateur 2021-10-18 09:02:36 +08:00 via Android
c 语言的语法是非常严谨的,不能随便写,a < b < c 这种写法是不允许的
|
8
Leonard 2021-10-18 09:22:05 +08:00
你这代码贴的也太乱了。
如#7 所说 C 语音不要多个不等式放在一起写 |
9
salor 2021-10-18 16:49:43 +08:00
第一个问题,想用一个表达式判断两个运算符的时候要用『且&&』『或||』去判断,分析见#5
第二个问题,scanf 加了\n,分析 https://stackoverflow.com/questions/19499060/what-is-the-effect-of-trailing-white-space-in-a-scanf-format-string |
10
salor 2021-10-18 17:01:01 +08:00
要学会多 printf 打印值找 bug 。编译器的语法提示,断点找 bug 都很有用。
|