选择结构问题
本帖最后由 7777777-4396 于 2020-5-1 10:32 编辑#include<stdio.h>
int main()
{float a;
int b=0,i=0,c,o,v;
printf("请输入所有学生的期末成绩:");
scanf("%.1f",&a);
while(a>=0&&a<=100)
{i++;
o=i++;
if(a>=60)
if(a>=80)
if(a>=90)printf("No.%d 期末成绩:%.1f 考核等级:A\n",o,a);
else printf("No.%d 期末成绩:%.1f 考核等级:B\n",o,a);
else printf("No.%d 期末成绩:%.1f 考核成绩:C\n",o,a);
else printf("No.%d 期末成绩:%.1f 考核成绩:D\n",o,a);
}
while(a>=0&&a<60)
{b++;
v=b++;
c=o-v;
printf("及格人数:%d 不及格人数:%d",c,v);
}
return 0;
}
输入成绩之后 是无限循环例如 :95-1(输入非法成绩停止运行) No.1期末成绩:0.0 考核等级:D 输入不能指定浮点数的位数,要把 .1 去掉。
猜你应该是想这样:
#include <stdio.h>
int main()
{
float a;
int b = 0, i = 0, c;
printf("请输入所有学生的期末成绩:");
scanf("%f", &a);
while (a >= 0 && a <= 100)
{
i++;
if (a >= 60)
if (a >= 80)
if (a >= 90)
printf("No.%d 期末成绩:%.1f 考核等级:A\n", i, a);
else
printf("No.%d 期末成绩:%.1f 考核等级:B\n", i, a);
else
printf("No.%d 期末成绩:%.1f 考核成绩:C\n", i, a);
else
printf("No.%d 期末成绩:%.1f 考核成绩:D\n", i, a);
if (a >= 0 && a < 60)
{
b++;
}
scanf("%f", &a);
}
c = i - b;
printf("及格人数:%d 不及格人数:%d", c, b);
return 0;
} 首先scanf函数应该在循环内(输入所有同学的期末成绩);
a的值没有发生变化,当然会一直在循环状态下。
页:
[1]