本帖最后由 jackz007 于 2022-11-22 12:56 编辑 grade = getchar() ; // 一方面,grade 是循环变量,在开始循环前,需要进行初始化,以便可以跨过 while 的条件门槛,顺利进入循环,另一方面,也确实需要输入成绩信息。
while(grade != '#')
{
switch(grade)
{
. . . . . .
}
grade = getchar() ; // 一方面,grade 是循环变量,需要在每一次的循环中被改变,否则,就会成为死循环,另一方面,这个 getchar() 也是为了满足统计新的成绩需要。
你的代码存在错误,下面是修改过的代码:#include <stdio.h>
int main(void)
{
int aCount = 0,bCount = 0,cCount = 0,dCount = 0,eCount = 0;
char grade;
printf("请输入成绩通过# :\n") ;
grade = getchar() ;
while(grade != '#')
{
switch(grade)
{
case'A':
case'a': printf("90--100\n");
aCount++;
break;
case'B':
case'b': printf("80--90\n") ;
bCount++ ; //【错误】:这里使用了 aCount
break;
case'C':
case'c': printf("70--80\n") ;
cCount++ ; //【错误】:这里使用了 aCount
break;
case'D':
case'd': printf("60--70\n") ;
dCount++ ; //【错误】:这里使用了 aCount
break ;
case'E':
case'e': printf("<60\n") ;
eCount++ ; //【错误】:这里使用了 aCount
break ;
default: printf("错误!请再输入一次。\n") ;
}
grade = getchar() ;
}
printf("结果: A:%d, B:%d, C:%d, D:%d, E:%d\n",aCount,bCount,cCount,dCount,eCount);
}
|