第二次作业
- 判断成绩等级。
给定一百分制成绩,要求输出成绩的等级。90以上为A,80-89为B,70-79为C,60-69为D,60分以下为E,输入大于100或小于0时输出“输入数据错误”。 分别用if和用switch语句实现
1 #include<stdio.h> 2 int main() 3 { 4 int a; 5 printf("输入你的成绩:\n"); 6 scanf("%d",&a); 7 if (a>100||a<0) 8 { 9 printf("输入错误\n"); 10 } 11 else 12 { 13 if(a<=100&&a>=90) 14 { 15 printf("A"); 16 } 17 else if(a<90&&a>=80) 18 { 19 printf("B"); 20 } 21 else if(a<80&&a>=70) 22 { 23 printf("C"); 24 } 25 else if(a<70&&a>=60) 26 { 27 printf("D"); 28 } 29 else 30 { 31 printf("E"); 32 } 33 } 34 return 0; 35 }
1 #include<stdio.h> 2 int main() 3 { 4 int x; 5 printf("输入成绩"); 6 scanf("%d",&x); 7 switch(x/10) 8 { 9 case 10:printf("A");break; 10 case 9:printf("A");break; 11 case 8:printf("B");break; 12 case 7:printf("C");break; 13 case 6:printf("D");break; 14 case 5: 15 case 4: 16 case 3: 17 case 2: 18 case 1: 19 case 0:printf("E");break; 20 default:printf("error"); 21 } 22 return 0; 23 }
评论:成绩输入时注意输错成绩的情况,做好预处理。
1 #include<stdio.h> 2 int main() 3 { 4 int a,b,c,d,e,f,g; 5 printf("ÊäÈëÒ»¸öÎåλÊý:\n"); 6 scanf("%d",&a); 7 if(a/10000==0) 8 { 9 printf("不符合要求!"); 10 } 11 else 12 { 13 if(a/10000!=0) 14 { 15 b=a/10000; 16 c=a/1000%10; 17 d=a/100%10; 18 e=a/10%10; 19 f=a%10; 20 g=10000*f+1000*e+100*d+10*c+b; 21 printf("这是五位数%d",g); 22 } 23 else if(a/1000!=0) 24 { 25 b=a/1000; 26 c=a/100%10; 27 d=a/10%10; 28 e=a%10; 29 g=1000*e+100*d+10*c+b; 30 printf("这是四位数%d",g); 31 } 32 else if(a/100!=0) 33 { 34 b=a/100; 35 c=a/10%10; 36 d=a%10; 37 g=100*d+10*c+b; 38 printf("这是三位数%d",g); 39 } 40 else if(a/10!=0) 41 { 42 b=a/10; 43 c=a%10; 44 g=10*c+b; 45 printf("这是二位数%d",g); 46 } 47 else 48 { 49 g=a; 50 printf("这是一位数%d"); 51 } 52 } 53 return 0; 54 }
结论:注意如果不符合要求的输出项,要设置为前提。
1 #include<stdio.h> 2 int main() 3 { 4 int a,b,c,d,e,f; 5 printf("输入一个五位数",a); 6 scanf("%d",&a); 7 b=a/10000; 8 c=a/1000%10; 9 d=a/100%10; 10 e=a/10%10; 11 f=a%10; 12 if(b==f&&c==e) 13 { 14 printf("这是回文数"); 15 } 16 else 17 { 18 printf("这不是回文数"); 19 } 20 return 0; 21 }
结论:第5位和第一位相同,第2位和第4位相同,先运算在判断。
1 #include<stdio.h> 2 int main() 3 { 4 float x,y; 5 printf("d"); 6 scanf("%d",&x); 7 if(x<5&&x>=0) 8 { 9 y=-x+2.5; 10 printf("%.3f",y); 11 } 12 else if(x<10&&x>=5) 13 { 14 y=2-1.5*(x-3)*(x-3); 15 printf("%.3f",y); 16 } 17 else if (x<20&&x>=10) 18 { 19 y=(x/2)-1.5; 20 printf("%.3f",y); 21 } 22 return 0; 23 }
结论:最后结果注意格式.3f以保留3位小数