cr:经典
利用条件运算符的嵌套来完成此题:
学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
程序分析:(a>b)?a:b这是条件运算符的基本例子。
思路:
这道题和之前做过的小林的一道题很类似。但是方法却不太相同——使用条件运算符,也就是问号语句。
使用嵌套的话,第一层判断A等级,不符合则再用一个判断;第二层判断B等级,不符合则是C等级。
代码:
#include<stdio.h>
main()
{
int score;
char grade;
printf("输入分数:");
scanf_s("%d", &score);
grade = score >= 90 ? 'A' : score >= 60 && score <= 89 ? 'B' :'C';
printf("\n成绩等级为:%c\n", grade);
}
对方:
反思:
对条件运算符还是不敏感,看到题目要求的时候没有立即反应过来。
收获:
条件运算符的第二三项是一个类似于赋值的部分,但是在中间写不了变量赋值。只能在前面放一个变量来接收结果,或者直接放在输出语句后面变量的位置上。
cr:小林
例12
在全系1000个学生中,征集慈善捐款。当总数达到10万元时就结束,统计此时的捐款人数,以及平均每人捐款的数目。
思路:
看完题目:疑点重重;看完对方:直呼有钱!对方每个人捐赠都是万元起步,按这个题目要求,就算全校学生都捐款,每个人也需要捐100元才能结束捐款,简直不可思议。
代码:
#include<stdio.h>
main()
{
int sum = 100000, money, num = 0, i, total = 0;
for (i = 1, money = 0; i < 1001; i++) {
printf("第%d位学生捐款数额:", i);
scanf_s("%d", &money);
num++;
total += money;
printf("目前已募集金额:%d元\n\n", total);
if (total >= sum) break;
}
printf("\n金额已够,感谢大家支持!\n");
}
对方:
反思&收获:
复习了一下break跳出,以及复合运算符。