有关c在vc6.0中运行的问题

来源:百度知道 编辑:UC知道 时间:2024/06/03 12:30:26
#include<stdio.h>
main()
{
float score;
char grade;
scanf("%f",score);
while (score>100||score<0);
{
printf("\n输入有错误,请重新输入");
scanf("%f",score);
}
switch((int)(score/10))
{
case 10:
case 9:grade='A';break;
case 8:grade='B';break;
case 7:grade='C';break;
case 6:grade='D';break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:grade='E';
}
printf("成绩为%f,相应的等级为%c.\n",score,grade);
}
一运行该程序windows就这个弹出以下信息
2.exe遇到问题需要关闭.我们对此引起的不便表示抱歉.
请问这是什么原因?

两个 scanf("%f",score) 都没在score前加取地址符&
应该是scanf("%f",&score)

还有while (score>100||score<0);
后面的分号应该去掉

PS:楼上的, 手动输入score 就不用赋初值了吧 汗~~

//应该改为:
#include<stdio.h>
void main()
{
float score;
char grade;
score=0.0;//变量初始化
scanf("%f",&score); //使用score的地址
while (score>100||score<0)//循环条件不用分号
{
printf("\n输入有错误,请重新输入");
scanf("%f",score);
}
switch((int)(score/10))
{
case 10:
case 9:grade='A';break;
case 8:grade='B';break;
case 7:grade='C';break;
case 6:grade='D';break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:grade='E';
}
printf("成绩为%.1f,相应的等级为%c.\n",score,grade);
}

#include<stdio.h>
int main()
{
float score ;
char grade;