第三次作业
一、实验内容
1、字符判断
实验要求: 输入一个字符,判断它如果是小写字母输出其对应大写字母;如果是大写字母输出其对应小写字母;如果是数字输出数字本身;如果是空格,输出“space”;如果不是上述情况,输出“other”。
#include <stdio.h> int main() { char a; scanf("%c",&a); if(a>='A'&&a<='Z') { a=a+32; printf("%c\n",a); } else if(a>='a'&&a<='z') { a=a-32; printf("%c\n",a); } else if(a==' ') { printf("space\n"); } else if(a>='0'&&a<='9') { printf("%c\n",a); } else { printf("other\n"); } return 0; }
2、年龄问题
实验要求:输入一个学生的生日(年:月:日),并输入当前日期(年:月:日),计算该生的实际年龄(周岁)。
#include<stdio.h> int main() { int a,b,c,x,y,z,d; printf("请输入你的生日\n"); scanf("%d%d%d",&a,&b,&c); printf("请输入今天的日期\n"); scanf("%d%d%d",&x,&y,&z); if(b>=13||b<=0||c<=0||c>=32||y>=13||y<=0||z<=0||z>=32||a>x) { printf("输入错误\n"); } else if(((b==4||b==6||b==9||b==11)&&c==31)||((b==4||b==6||b==9||b==11)&&z==31)) { printf("输入错误\n"); } else if((b==2&&a%4==0&&c>=30)||(y==2&&x%4==0&&z>=30)) { printf("输入错误\n"); } else if((b==2&&a%4!=0&&c>=29)||(y==2&&x%4!=0&&z>=29)) { printf("输入错误\n"); } else if(a==x&&b>y) { printf("输入错误\n"); } else if(a==x&&b==y&&c>z) { printf("输入错误\n"); } else if(y<b) { d=x-1-a; printf("%d",d); } else if(y==b) { if(z<c) { d=x-1-a; printf("%d",d); } else if(z>=c) { d=x-a; printf("%d",d); } } else if(y>b) { d=x-a; printf("%d",d); } return 0; }
3、判断三角形类型
实验要求:输入三个整数,判断由其构成的三角形的类型(等边三角形、等腰三角形、等腰直角三角形、直角三角形、一般三角形以及非三角形)
#include<stdio.h> int main() { int a,b,c; printf("输入三个整数,判断由其构成的三角形的类型\n") ; scanf("%d%d%d",&a,&b,&c); if(a+b<=c||a+c<=b||b+c<=a||a<=0||b<=0||c<=0) { printf("非三角形\n"); } else if(a==b&&a==c) { printf("等边三角形\n"); } else if(a==b||a==c||b==c) { printf("等腰三角形\n"); } else if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a) { printf("直角三角形\n"); } else if((a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)&&(a==b||a==c||b==c)) { printf("等腰直角三角形\n"); } else { printf("一般三角形\n"); } return 0; }
4、看商品猜价格小游戏
#include<stdlib.h> #include<stdio.h> #include<time.h> int main() { int a,b; printf("请竞猜价格(一百以内的整数)\n"); srand(time(NULL)); a=rand()%100+1; scanf("%d",&b); if(b<=0||b>100) { printf("输入错误\n"); } else if(b==a) { printf("恭喜你猜对了!\n"); } else if(b>a) { printf("猜高了\n"); } else if(b<a) { printf("猜低了\n"); } return 0; }
附加题:虫子吃苹果问题(完成此题加1分)
你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?
输入n,x和y(均为整数),输出剩下的苹果个数。
#include<stdio.h> int main() { double n,x,y; int z; printf("你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?\n请输入n,x和y(均为整数,用空格分开)\n" ); scanf("%lf%lf%lf",&n,&x,&y); if(n<=0||x<=0||y<=0) { printf("输入错误\n"); } else { z=n-y/x; if(z<=0) { printf("还剩0个苹果\n"); } else { printf("还剩%d个苹果\n",z); } } return 0; }
二、本次课知识点总结
1、字符型数据的使用
2、如何产生随机数
3、选择语句的使用
三、实验总结
1、字符型数据用单引号引上
2、在判断输入非法数据时更严谨
3、一个else对应一个if
4、附加题中,计算时应用实型常量,输出时应用整形常量