请编fun函数写程序,从键盘输入百分制成绩,要求输出等级制成绩A、B、C、D。90~100分为A,80~89分为B,
60~79分为C,1~59分为D。不考虑小数,输入为整数, 输出为字符。
default: 从这里看,题目要你用switch,而不是 if
char fun(int n)
{
char s;
switch(n) {
case 10: case 9: s = 'A'; break;
case 8: s = 'B'; break;
case 6: case 7: s = 'C'; break;
default: s = 'D';
}
return s;
}
供参考:
char fun(int n)
{
char s;
/***********Program**********/
switch(n){
case 10:
case 9 : s = 'A'; break;
case 8 : s = 'B'; break;
case 7 :
case 6 : s = 'C'; break;
/*********** End *********/
default: s = 'D';
}
return s;
}
不知道你这个问题是否已经解决, 如果还没有解决的话:答案:
根据参考资料中的代码,可以看出出现16行错误是因为使用了不兼容的scanf_s函数。解决方法有两种:
1.使用scanf函数
将代码中的scanf_s("%d", &a)改为scanf("%d", &a)即可。
修改后的代码如下:
int main() { int a; printf("输入学生的成绩:\n"); scanf("%d", &a); if (a < 0 || a>100) { printf("输入的成绩错误!\n"); } else { if (a > 90) { printf("该同学的等级为:A"); } if (a >= 75 && a <= 89) { printf("该同学的等级为:B"); } if (a >= 60 && a <= 74) { printf("该同学的等级为:C"); } if (a >= 0 && a <= 59) { printf("该同学的等级为:D"); } } return 0; }
2.使用scanf_s函数,并开启安全编译选项
在使用scanf_s函数时,需要开启安全编译选项,否则会出现错误提示。具体操作如下:
(1) 在Visual Studio中打开项目,选择解决方案资源管理器。
(2) 选中项目,在菜单栏中选择“项目-属性”。
(3) 在弹出的窗口中,选择“C/C++”选项卡,选择“预处理器”后,在预处理器定义中添加_SCL_SECURE_NO_WARNINGS
(4) 在同一窗口中,选择“链接器”选项卡,在“系统”选项中,将“启用安全检查”改为“否”。
(5) 修改代码,即将代码中的scanf_s("%d", &a)改为scanf_s("%d", &a, sizeof(int))
修改后的代码如下:
int main() { int a; printf("输入学生的成绩:\n"); scanf_s("%d", &a, sizeof(int)); if (a < 0 || a>100) { printf("输入的成绩错误!\n"); } else { if (a > 90) { printf("该同学的等级为:A"); } if (a >= 75 && a <= 89) { printf("该同学的等级为:B"); } if (a >= 60 && a <= 74) { printf("该同学的等级为:C"); } if (a >= 0 && a <= 59) { printf("该同学的等级为:D"); } } return 0; }
注意:在使用scanf_s函数时,如果输入的是字符串,需要将缓冲区长度作为第三个参数传入。如果输入的是整型或浮点型变量,则需要将变量的大小(以字节为单位)作为第三个参数传入。同时,在使用scanf_s函数时,建议使用格式控制符“%*c”,可以帮助清除输入缓冲区。