下面代码的功能是将百分制成绩转换为5分制成绩,具体功能是:如果用户输入的是非法字符或者不在合理区间内的数据(例如输入的是a,或者102,或-45等),则程序输出 Input error!,并允许用户重新输入,直到输入合法数据为止,并将其转换为5分制输出。目前程序存在错误,请将其修改正确。并按照下面给出的运行示例检查程序。
#include
int main()
{
int score;
char grade;
printf("Please input score:");
scanf("%d", &score);
if (score < 0 || score > 100)
printf("Input error!\n");
else if (score >= 90)
grade = 'A’;
else if (score >= 80)
grade = 'B';
else if (score >= 70)
grade = 'C';
else if (score >= 60)
grade = 'D';
else
grade = 'E';
printf("grade:%c\n", grade);
return 0;
}
我的代码:
#include
int panduanchengji(int a);
int main()
{
int score,m;
char grade;
printf("Please input score:\n");
scanf("%d",&m);
score=panduanchengji(m);
if(score100)
printf("Input error!\n");
else if(score>=90)
{
grade ='A';
printf("grade: %c\n",grade);
}
else if(score>=80)
{
grade='B';
printf("grade: %c\n",grade);
}
else if(score>=70)
{
grade='C';
printf("grade: %c\n",grade);
}
else if(score>=60)
{
grade='D';
printf("grade: %c\n",grade);
}
else if(score=0)
{
grade='E';
printf("grade: %c\n",grade);
}
else
printf("Input error!\n");
return 0;
}
int panduanchengji(int a)
{
int b;
b=scanf("%d",&a);
if(b==1)
return a;
else
return -1;
}
那么问题来了,为什么输数字按回车没有反应,求大神赐教
这个程序一共就三个大阶段,输入,转换,和输出
输入也分几个阶段
1.从标准输入读取一行数据
2.检验一行数据是否都是数字
3.将数字转换成整形输出
转换的话就简单了
1.判断大小是否符合范围
2.将百分制转换为5分制
输出就不用我讲了