一、实验内容
1. 实验要求:字符判断
输入一个字符,判断它如果是小写字母输出其对应大写字母;如果是大写字母输出其对应小写字 母;如果是数字输出数字本身;如果是空格,输出“space”;如果不是上述情况,输 出“other”。
代码:
#include<stdio.h> int main() { char c; printf("请输入一个字符 "); scanf("%c",&c); if (c>='A'&&c<='Z') { c=c+32; printf("%c",c); } else if (c>='a'&&c<='z') { c=c-32; printf("%c",c); } else if (c>='0'&&c<='9') { printf("%c",c); } else if (c==' ') { printf("space "); } else { printf("other "); } return 0; }
程序运行结果:
2. 实验要求:年龄问题
输入一个学生的生日(年:月:日),并输入当前日期(年:月:日),计算该生的实际年龄(周岁)。
代码:
#include<stdio.h> int main() { int a,b,c,d,e,f,g; printf("请输入你的生日,年月日用逗号分开 "); scanf("%d,%d,%d",&a,&b,&c); printf("请输入今天的日期,格式:年-月-日 "); scanf("%d-%d-%d",&d,&e,&f); if (d>a) { if (b==e) { if (c>=f) { g=d-a-1; printf("你今年%d周岁了",g); } else { g=d-a; printf("你今年%d周岁了",g); } } else if (b>e) { g=d-a-1; printf("你今年%d周岁了",g); } else if (b<e) { g=d-a; printf("你今年%d周岁了",g); } } else if (d==a) { if (b>e) { printf("未满一周岁"); } else if (b==e) { if (c>=d) { printf("未满一周岁"); } else if (c<d) { printf("输入错误"); } } else if (b<e) { printf("输入错误"); } } else { printf("输入错误"); } return 0; }
程序运行结果:
3. 实验要求:判断三角形类型
输入三个整数,判断由其构成的三角形的类型(等边三角形、等腰三角形、等腰直角三角形、直角三角形、一般三角形以及非三角形)
代码:
#include<stdio.h> int main() { int a,b,c; r:printf("请输入三个整数,判断能否构成三角形及其类型 "); scanf("%d%d%d",&a,&b,&c); if ((a+b>c&&a+c>b&&b+c>a)&&(fabs(b-a)<c&&fabs(c-a)<b&&fabs(c-b)<a)) { if (a==b&&a==c&&b==c) { printf("等边三角形 "); } else if ((a==b&&a!=c&&b!=c)||(b==c&&a!=c&&a!=b)||(a==c&&a!=b&&b!=c)) { if ((a*a==b*b+c*c)||(b*b==a*a+c*c)||(c*c==a*a+b*b)) { printf("等腰直角三角形 "); } else { printf("等腰三角形 "); } } else if ((a!=b&&b!=c&&a!=c)&&((a*a==b*b+c*c)||(b*b==a*a+c*c)||(c*c==a*a+b*b))) { printf("直角三角形 "); } else { printf("一般三角形 "); } } else { printf("不能构成三角形 "); } goto r; return 0; }
程序运行结果:
4. 看商品猜价格小游戏
代码:
#include<stdio.h> #include<stdlib.h> #include<time.h> int main() { int price,a; srand(time(NULL)); price=rand()%100+1; printf("请猜出商品的价格 "); scanf("%d",&a); if (a>price) { printf("Wrong:greater "); } else if (a<price) { printf("Wrong:less "); } else if (a==price) { printf("Right:Congratulations! "); } return 0; }
程序运行结果:
5.附加题:虫子吃苹果问题
你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子.虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?
代码:
#include<stdio.h> int main() { int n,x,y,z; printf("你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子.虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果? "); printf("请输入n,x,y的值(均为整数) "); scanf("%d%d%d",&n,&x,&y); if (y%x==0) { z=n-y/x; } else if (y%x!=0) { z=n-(y/x+1); } if (z<0) { printf("苹果被虫子吃光了 "); } else { printf("还剩%d个苹果 ",z); } return 0; }
程序运行结果:
二、本次课知识点总结
1、大写字母转换为小写字母+32,反之小到大-32。
2、使用if else 连环嵌套。
3、1、一个主函数一定要定义常量,当错误显示“...first use in the...”时代表没有定义用到的常量。
4、随机函数rand()
产生0-99的随机函数,magic=rand()%100;
产生1-100的随机函数,magic=rand()%100+1;
5、 分清“=”与“==”的含义
三、实验总结(实验中遇到的问题及解决方法)
1、‘a'表示一个字符
2、int 常量用“%d”
3、char字符只能读取一个字符
4、 要尽可能把所有情况包含在程序中
5、.除法是“/”而不是“”。