一、实验内容
1.字符判断
实验要求:输入一个字符判断它如果是小写字母输出其对应大写字母;如果是大写字母输出其对应小写字母;如果是数字输出数字本身;如果是空格,输出“space”;如果不是上述情况,输出“other”。
#include<stdio.h> int main() { char a; printf("请输入一个字符 "); a=getchar(); if(a>='A'&&a<='Z') { a=a+32; putchar(a); } else if(a>='a'&&a<='z') { a=a-32; putchar(a); } else if(a>='0'&&a<='9') { putchar(a); } else if(a==' ') { printf("space "); } else { printf("other "); } return 0; }
2.年龄问题
输入一个学生的生日(年:月:日),并输入当前日期(年:月:日),计算该生的实际年龄(周岁)。
#include<stdio.h> int main() { int a,b,c,l,m,n,x; printf("请输入你的生日,格式为年-月-日 "); scanf("%d-%d-%d",&a,&b,&c); printf("请输入今天的日期 "); scanf("%d-%d-%d",&l,&m,&n); if(a>l||b>=13||b<=0||c>=32||c<=0||m>=13||m<=0||n>=32||n<=0) { printf("输入错误 "); } else if(m<b) { x=l-a-1; printf("你的周岁是%d",x); } else if(m==b) { if(c>n) { x=l-a-1; printf("你的周岁是%d",x); } else if(n>=c) { x=l-a; printf("你的周岁是%d",x); } } else if(m>b) { x=l-a; printf("你的周岁是%d",x); } return 0; }
3.判断三角形类型
输入三个整数,判断由其构成的三角形的类型(等边三角形、等腰三角形、等腰直角三角形、直角三角形、一般三角形以及非三角形)
#include<stdio.h> int main() { int a,b,c; printf("请输入三个整数,中间用连字符隔开,我将判断由其构成的三角形的类型 ") ; scanf("%d-%d-%d",&a,&b,&c); if(a+b<=c||a+c<=b||b+c<=a||a<=0||b<=0||c<=0) { printf("输入错误,不能构成三角形 "); } else if(a==b&&a==c) { printf("可构成等边三角形 "); } else if(a==b||a==c||b==c) { printf("可构成等腰三角形 "); } else if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a) { printf("可构成直角三角形 "); } 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("可构成等腰直角三角形 "); } else { printf("可构成一般三角形 "); } return 0; }
4.看商品猜价格小游戏
# include <stdio.h> # include <stdlib.h> # include <time.h> int main() { int a,b; printf("请你猜这个商品的价格(整数,1-100之间) "); scanf("%d",&a); srand(time(NULL)); b=rand()%100+1; if(a==b) { printf("你猜对了 "); } else if(a<b) { printf("你猜的价格太低了,价格是%d ",b); } else { printf("你猜的价格太高了,价格是%d ",b); } 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,x,y,用空格分开) " ); scanf("%lf%lf%lf",&n,&x,&y); if(n<=0||x<=0||y<=0) { printf("输入有误 "); } else { z=n-y/x; if(z<=0) { printf("苹果被虫子吃光了 "); } else { printf("你还剩%d个苹果 ",z); } } return 0; }
二、知识点总结
1、字符型数据的使用
2、随机函数rand()
3、用系统时间函数srand(time(NULL))使用时间函数time.h。
三、实验总结
字符型数据相互转化时需要注意大写字母转换为小写字母+32,反之小到大-32。