可以同时输入三个数字进行划分等级的,不要输入一个就结束了,可以三个数字反复输出
你是需要获取3个分数,然后再同时输出其对应的等级吗?如果是的话,可以从输入获取3个分数存入数组后, 再用循环遍历数组3个元素值,然后判断输入其对应的等级即可。
代码如下:
#include <stdio.h>
int main(void){
int scores[3]; // 这里定义存储3个分数成绩
// 从输入获取3个分数存入数组
printf("请输入三个分数:");
scanf("%d%d%d",&scores[0],&scores[1],&scores[2]);
int i=0;
printf("成绩等级分别为:");
// 使用循环遍历数组中存储的3个成绩,并输入其对应的等级
while(i<3){
int score = scores[i];
if(score>=90){
printf("a ");
}else if(score>=80){
printf("b ");
}else if(score>=70){
printf("c ");
}else if(score>=60){
printf("d ");
}else {
printf("e ");
}
i++;
}
return 0;
}
public static void main(String []args)
{
int a=1>>2; // 1 向右位移 2 位
/* 这里就按一个直接推(int型一般是4个字节)
0000 0001 右移动2位,溢出的不要并用符号位补,
所以得到 0000 0000 (补码) 0的源码和补码一样,
即输出 0
*/
int b=-1>>2;//算术右移
/* 原 1000 0001 反 1111 1110 负数的补码 = 它的反码 +1;
补 1111 1111 右移动2位,溢出的不要并用符号位补,
得 1111 1111(补码)负数的反码 = 负数的补码 -1,
1000 0000(反),源码1000 0001 ,即输出 -1
*/
int c=1<<2;//算术左移
int d=-1<<2;//
int e=3>>>2;//无符号右移
//a,b,c,d,e 结果是多少
System.out.println("a="+a);
System.out.println("b="+b);
System.out.println("c="+c);
System.out.println("d="+d);
System.out.println("e="+e);
}
我可以为您提供以下C语言代码实现成绩等级划分并重复输出a,b,c,d,e的功能:
#include <stdio.h>
void getLevel(int score) {
char level;
if (score < 0 || score > 100) {
printf("输入错误,请重新输入\n");
return;
} else if (score >= 90) {
level = 'a';
} else if (score >= 80) {
level = 'b';
} else if (score >= 70) {
level = 'c';
} else if (score >= 60) {
level = 'd';
} else {
level = 'e';
}
printf("成绩等级为%c\n", level);
}
int main() {
int score;
while (1) {
printf("请输入成绩:");
scanf("%d", &score);
getLevel(score);
}
return 0;
}
这段代码通过循环不断获取用户输入的成绩,并调用名为getLevel()的函数对成绩进行判定,并输出对应的等级。如果输入的成绩超出0到100的范围,则输出错误提示。
接下来给出函数getLevel()的实现。判定方式为:
这个函数通过字符表示等级,使用printf()函数输出等级。
希望这段代码和解释对您有所帮助!
把三个数放到一个一维数组里面,for循环里面用switch case语句