分类: C/C++
2008-03-20 18:50:37
来源: 作者:antigloss 等级:精品
发布于2006-11-04 22:41 被读2506次 【字体: 】 |
题目:假设某位老师需要分别统计若干个班某项考试的平均分,但每个班的人数都不相同,请写个程序辅助他尽快完成任务。要求保留两位小数。 在往下看之前,请读者先自己试着写一个,说不定您写的比我下面写的那个要好得多。 解答: #include <stdio.h> int main(void) printf("Please tell me how many students are there in this class: "); for ( i = 0, total_score = 0; i != num_of_students; ++i ) 运行结果: Please tell me how many students are there in this class: 5 Please tell me the score of each student: 程序重点: 1. 要算出平均分,就必须知道学生数目。学生数目需要由用户(本例中是老师)输入, 2. 您可能已经发现了,本例第二个 printf 调用写得有点奇怪,也许您会觉得我写错了。 "Got it! %u students in this class.\n\n" 等同于 "Got it! ...(略) class.\n\nPlease ... student:\n" 为了便于排版,我对上面这个字符串作了一些省略。除了这点,您肯定还发现了另一个 #include <stdio.h> /* 注意,预处理指令需要一行写完!*/
;
printf( "%d\n", four); return 0;} 这样写是完全合法的,但是非常难看,毫无可读性可言!我们应该利用这种自由来书写 3. 通过循环算出总分。该循环每次获取用户输入的一个分数,每获取一个分数都和前面已 4. 输入分数时,分数之间可用空格隔开,也可用回车隔开。本例同时使用了这两种方法。 5. 也许您注意到了,程序运行时,我输入了 6 个分数,但算出来的结果只是前 5 个分数 6. 输入的数据会先被放入缓冲区中,等到按了回车键之后才会被送到我们编写的程序里。 7. 输入非数字字符(如 abc#@,.?=-+ 等)会导致该程序出问题,解决办法我们以后会详细 参考资料:C Primer 5th Edition 本文版权归 以及 作者 antigloss 共同所有,转载请注明原作者和出处。谢谢。 |