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> #include<stdlib.h> int main() { int year,month,day,year1,month1,day1,A; printf("请输入你的生日,格式如:年-月-日。 "); scanf("%d-%d-%d",&year,&month,&day); if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) { if(day>=0&&day<=31) { printf("输入日期正确,请在输入今天的日期,格式相同。 "); } else { printf("输入日期错误,请关闭程序,重新输入。 "); } } else if(month==4||month==6||month==9||month==11) { if(day>=0&&day<=30) { printf("输入日期正确,请在输入今天的日期,格式相同。 "); } else { printf("输入日期错误,请关闭程序,重新输入。 "); } } else if(month==2) { if(year/4==0&&year/100!=0||year/400==0) { if(day>=0&&day<=29) { printf("输入日期正确,请在输入今天的日期,格式相同。 "); } else { printf("输入日期错误,请关闭程序,重新输入。 "); } } else { if(day>=0&&day<=28) { printf("输入日期正确,请在输入今天的日期,格式相同。 "); } else { printf("输入日期错误,请关闭程序,重新输入。 "); } } } else { printf("输入日期错误,请关闭程序,重新输入。 "); } scanf("%d-%d-%d",&year1,&month1,&day1); if(month1==1||month1==3||month1==5||month1==7||month1==8||month1==10||month1==12) { if(day1>=0&&day1<=31) { printf("输入日期正确,将计算出你的日期。 "); } else { printf("输入日期错误,请关闭程序,重新输入。 "); exit(0); } } else if(month1==4||month1==6||month1==9||month1==11) { if(day1>=0&&day1<=30) { printf("输入日期正确,将计算出你的日期。 "); } else { printf("输入日期错误,请关闭程序,重新输入。 "); exit(0); } } else if(month1==2) { if(year1/4==0&&year1/100!=0||year1/400==0) { if(day1>=0&&day1<=29) { printf("输入日期正确,将计算出你的日期。 "); } else { printf("输入日期错误,请关闭程序,重新输入。 "); exit(0); } } else { if(day1>=0&&day1<=28) { printf("输入日期正确,将计算出你的日期。 "); } else { printf("输入日期错误,请关闭程序,重新输入。 "); exit(0); } } } else { printf("输入日期错误,请关闭程序,重新输入。 "); exit(0); } if(year<year1) { if(month<month1) { A=year1-year; printf("你的周岁为%d。 ",A); } else if(month==month1) { if(day<=day1) { A=year1-year; printf("你的周岁为%d。 ",A); } else { A=year1-year-1; printf("你的周岁为%d。 ",A); } } else { A=year1-year-1; printf("你的周岁为%d。 ",A); } } else if(year==year1) { if(month>month1) { printf("你的日期不合法。 "); } if(month==month1) { if(day>day1) { printf("你的日期不合法。 "); } else { printf("你的周岁为0。 "); } } else { printf("你的周岁为0。 "); } } else { printf("你的日期不合法。 "); } return 0; }
3. 判断三角形类型
实验要求:输入三个整数,判断由其构成的三角形的类型(等边三角形、等腰三角形、等腰直角三角形、直角三角形、一般三角形以及非三角形)。
#include<stdio.h> #include<math.h> int main() { int a,b,c,d,e; printf("请输入三个整数,并用逗号隔开,将计算出其是否能构成三角形及其类型。 "); scanf("%d,%d,%d",&a,&b,&c); d=b+c; e=fabs(b-c); if(d>a&&e<a) { if(a==b&&b==c) { printf("其能构成等边三角形。 "); } else if(a==b||b==c||a==c) { if(a==sqrt(b*b+c*c)||b==sqrt(a*a+c*c)||c==sqrt(b*b+a*a)) { printf("其能构成等腰直角三角形。 "); } else { printf("其能构成等腰三角形。 "); } } else if(a==sqrt(b*b+c*c)||b==sqrt(a*a+c*c)||c==sqrt(b*b+a*a)) { printf("其能构成直角三角形。 "); } else { printf("其能构成一般三角形。 "); } } else { printf("其不能构成三角形。 "); } return 0; }
4. 看商品猜价格小游戏
实验要求:
#include<stdlib.h> #include<time.h> int main() { int a,b; srand(time(NULL)); a=rand()%100+1; printf("请输入你认为的价格,范围在100以内。 "); scanf("%d",&b); if(a==b) { printf("商品归你了! "); } else if(a<b) { printf("你猜高了,正确价格为%d。 ",a); } else { printf("你猜低了,正确价格为%d。 ",a); } return 0; }
附加题:虫子吃苹果问题
#include<stdio.h> int main() { int n,x,y; float a,b; printf(" 你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果? "); printf("请输入n x y 的值。 "); scanf("%d%d%d",&n,&x,&y); a=(float)y/x; b=n-a; if(b>=0) { printf("还剩%d个苹果。 ",(int)b); } else { printf("还剩0个苹果。 "); } return 0; }
知识点总结:1.字符型数据要用单引号,标识符是用char表示,%c格式。
大写字母转换为小写字母+32,反之小到大-32。
2.用绝对值fabs计算使用数学函数math.h。
3.用系统时间函数srand(time(NULL))使用时间函数time.h。
4.随机函数rand()
产生0-99的随机函数,magic=rand()%100;
产生1-100的随机函数,magic=rand()%100+1;
5.使用强制退出exit(0),要用系统函数stdlib.h。
6.在%c之前加空格,或者在getchar()前加getchar()读走多余的回车符。
实验总结:scanf里不要忘记加取地址符;
注意类型转换的使用。