实验一:
实验要求:给定一百分制成绩,要求输出成绩的等级。90以上为A,80-89为B,70-79为C,60-69为D,60分以下为E,输入大于100或小于0时输出“输入数据错误”。 分别用if和用switch语句实现。
代码:
#include<stdio.h> int main() { int grade; printf("请输入自己的成绩O(∩_∩)O~~ "); scanf("%d",&grade); if (grade>100||grade<0) { printf("输入数据错误。 "); } if (grade>=90&&grade<=100) { printf("A "); } else if (grade>=80&&grade<=89) { printf("B "); } else if (grade>=70&&grade<=79) { printf("C "); } else if (grade>=60&&grade<=69) { printf("D "); } else if (grade>=0&&grade<=60) { printf("E "); } return 0; }
运行结果:
另一种:
代码:
#include<stdio.h> int main() { int G; printf("请输入你的成绩 "); scanf("%d",&G); if (G<0||G>100) printf("输入错误 "); else if(G=100) printf("A "); switch(G/10) { case 9:printf("A "); break; case 8:printf("B "); break; case 7:printf("C "); break; case 6:printf("D "); break; case 5:printf("E "); break; case 4:printf("E "); break; case 3:printf("E "); break; case 2:printf("E "); break; case 1:printf("E "); break; case 0:printf("E "); break; } return 0; }
运行结果:
实验二:
实验要求:输入一个不多于5位数的正整数,判断它是几位数并逆序输出。注意验证数据的合法性。
代码:
#include <stdio.h> int main() { int a,b,c,d,e,f,g; printf("请输入一个不多于5位的整数 "); scanf("%d",&a); if(a/10000>9) { printf("输入错误! "); } else if (a/10000!=0) { b=a/10000; c=a%10000/1000; d=a%10000%1000/100; e=a%10000%1000%100/10; f=a%10000%1000%100%10; g=b+c*10+d*100+e*1000+f*10000; printf("这是一个五位数,倒序数是%05d ",g); } else if (a/1000!=0) { b=a/1000; c=a%1000/100; d=a%1000%100/10; e=a%1000%100%10; g=b+c*10+d*100+e*1000; printf("这是一个四位数,倒序数是%04d ",g); } else if (a/100!=0) { b=a/100; c=a%100/10; d=a%100%10; g=b+c*10+d*100; printf("这是一个三位数,倒序数是%03d ",g); } else if (a/10!=0) { b=a/10; c=a%10; g=b+c*10; printf("这是一个两位数,倒序数是%02d ",g); } else { printf("这是一个一位数,倒序数是%d",g); } return 0; }
运行结果:
实验三:
实验要求:给定一个5位数,判断它是否是回文数。例如:12321是回文数。回文数的特点是个位和万位相同,十位和千位相同。
代码:
#include<stdio.h> int main() { int a,b,c,d,e,f; printf("请输入一个五位数 "); scanf("%d",&a); b=a/10000; c=a/1000%10; d=a/100%10; e=a%100/10; f=a%10; if (b==f&&c==e) { printf("是回文数"); } else { printf("不是回文数"); } return 0; }
运行结果:
实验四:
实验要求:计算分段函数
y=-x+2.5 0 <= x < 5
y=2-1.5(x-3)(x-3) 5 <= x < 10
y=x/2-1.5 10 <= x < 20
输入x的值(x为整数),输出y的值,结果保留3位小数。
代码:
#include<stdio.h> int main() { int x; float y; printf("输入x的值"); scanf("%d",&x); if (x>0&&x<=5) { y=-x+2.5; printf("y=%.3f",y); } else if (x>5&&x<10) { y=2-1.5*(x-3)*(x-3); printf("y=%.3f",y); } else if (x>=10&&x<20) { y=x/2-1.5; printf("y=%.3f",y); } else { printf("超出计算范围O(∩_∩)O"); } return 0; }
运行结果:
二.本次可知识点总结
1.对关系运算符的应用,>,<,>=,<=,==.
2.对逻辑运算符的应用,&&是与,||是或,!是非。
3.if 语句的结构和switch case的结构用法和基本框架。
4.对一些数学函数,分段函数的运用。
5.对取得结果的位数要求以及小数保留方法。
6.if语句嵌套的方法。
三.实验总结
1.实验过程中经常把==和=用混,==是等于,=是赋值;
2.总是把该用||的地方用&&;
3.在第五个程序中,得到的结果与计算的结果不一致,原来是由于没有注意位数的保留;
4.对于成绩判断的程序代码,丢掉了100分时候的情况,而且一开始没有进行合法输入的判定;
5.不太明白为什么第五个程序中,y要用float...室友告诉我是因为y不是整数..也可以用double;
6.写程序的时候总是丢掉int main后面的()。