关于C语言的一个菜鸟问题?

来源:百度知道 编辑:UC知道 时间:2024/05/13 19:47:54
/* Note:Your choice is C IDE */
#include "stdio.h"
main()
{
int counter=1;
int total=0;

do {

printf ("Enter students'total:\n");
scanf ("%d",&total);}
while (++counter<=10);

if (total>=90)
printf ("A\n");

if (total>=80&&total<90)
printf ("B\n");

if (total>=70&&total<80)
printf ("C\n");

if (total>=60&&total<70)
printf ("D\n");

if (total<60)
printf ("NO PASSED!\n");
}
为什么这个程序不执行反循环后的IF语句.
而我把do/while改为while 和 for 运行结果是正确的.而用do/while却不能呢?在线急等.
为什么最只给出最后一条IF语句的结果,
我是想每条IF 语句都执行.

把if一起放到do循环里面去,你用一个total循环10次,每次输入的值都给了他,这样最后一次输入的值覆盖掉前面所有的值了。

do {

printf ("Enter students'total:\n");
scanf ("%d",&total);}
while (++counter<=10);
表示执行9次循环,然后才退出,也就是需要输入9个成绩。
请问你输入够9个么?

do while 是先执行一次再进行条件判断。
你可以把if循环体写在do 的后面
while 后面只判断循环条件。
其实本题用cass语句写更简单
用do while 容易出错

do {
if (total>=90)
printf ("A\n");

if (total>=80&&total<90)
printf ("B\n");

if (total>=70&&total<80)
printf ("C\n");

if (total>=60&&total<70)
printf ("D\n");

if (total<60)
printf ("NO PASSED!\n");

}
while(total>=0 && total<=100)