我首先看到这个题 是初学者题目 非常简单
我第一时间在想 switch和if是不是能够最简单的解决的 我以为是的
但其实 这样代码冗长非常的麻烦
然后在网上一位博主处看到了使用数组的解法
首先给数组赋值
通过顺序 排位
来让成绩/10得到十位来表示成绩
除此之外呢 若使用switch也要/10 得到case后数字
下下策就是if嵌套不再多说了
#include<stdio.h>
int main()
{
int t;
char i[]="EEEEEEDCBA";
while(scanf("%d",&t) != EOF)
{
if(t<0||t>100)
printf("Score is error!\n");
else
printf("%c\n",i[t/10]);
}
return 0;
}
这篇博客探讨了如何用C语言更简洁地实现成绩到等级的转换。作者指出,传统的switch或if语句可能导致代码冗长,然后分享了一种使用数组的高效方法。通过将成绩映射到数组索引,可以快速找到对应的成绩等级。代码示例展示了如何根据成绩的十位数从数组中获取等级,并处理边界条件,如无效的成绩。
277

被折叠的 条评论
为什么被折叠?



