一、实验内容
1. 字符判断
输入一个字符,判断它如果是小写字母输出其对应大写字母;如果是大写字母输出其对应小写字母;如果是数字输出数字本身;如果是空格,输出“space”;如果不是上述情况,输出“other”。
#include<stdio.h> int main() { char c1; printf("intput a character\n"); c1=getchar(); if(c1>='A'&&c1<='Z') { c1=c1+32; printf("%c\n",c1); } else if(c1>='a'&&c1<='z') { c1=c1-32; printf("%c\n",c1); } else if(c1==' ') { printf("space\n"); } else if(c1>='0'&&c1<='9') { printf("%c\n",c1); } else { printf("other\n"); } return 0; }
2. 年龄问题
输入一个学生的生日(年:月:日),并输入当前日期(年:月:日),计算该生的实际年龄(周岁)。
#include <stdio.h> int main() { int a,b,c,d,e,f,year1,year2; printf("请输入你的生日,用:隔开"); scanf("%d:%d:%d",&a,&b,&c); printf("请输入今天的日期,用:隔开"); scanf("%d:%d:%d",&d,&e,&f); year1=d-a;
year2=year1-1; if(e>b&&f>c) { printf("该生今年%d岁了",year1); } else { printf("该生今年%d岁了",year2); } return 0; }
3. 判断三角形类型
输入三个整数,判断由其构成的三角形的类型(等边三角形、等腰三角形、等腰直角三角形、直角三角形、一般三角形以及非三角形)
#include<stdio.h>
#include<math.h>
int main()
{
int a,b,c;
printf("请输入三个整数\n");
scanf("%d%d%d",&a,&b,&c);
if(a>0&&b>0&&c>0&&fabs(a+b)>c&&fabs(a-b)<c)
{
if(a==b&&b==c)
{
printf("等边三角形");
}
else if(a==b||b==c||a==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)
{
if(a==b||a==c||b==c)
{
printf("等腰直角三角形");
}
}
else
{
printf("一般三角形");
}
}
else
{
printf("非三角形");
}
return 0;
}
4. 看商品猜价格小游戏
#include<stdio.h> #include<stdlib.h> #include<time.h> int main() { int price,guess; printf("请输入您猜的价格"); scanf("%d",&guess); srand(time(NULL)); price=rand()%100+1; if(price>guess) { printf("太小了,正确价格为%d\n",price); } else if(price<guess) { printf("太大了,正确价格为%d\n",price); } else { printf("商品归您了"); } return 0; }
附加题:虫子吃苹果问题
你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?
输入n,x和y(均为整数),输出剩下的苹果个数。
#include <stdio.h> int main () { int n,x,y,a; printf("请输入三个整数"); scanf("%d%d%d",&n,&x,&y); if (y%x==0) { a=n-y/x; printf("还剩%d个苹果",a); } else if (y%x!=0&&n>y/x) { a=n-y/x-1; printf("还剩%d个苹果",a); } else { printf("没有完整的苹果"); } return 0; }
二、本次课知识点总结
1、字符常量指用单引号括起来的普通字符或转义字符。
2.掌握char与int数据间的算术运算。大小写字母转换时大写字母转换为小写字母+32,反之小到大-32。
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.字符型数据的输入和输出。
三、实验总结(实验中遇到的问题及解决方法)
1.忘记输出,加上printf。字符常量的值对应的ASC11码值。
2.用绝对值忘记加上数学函数。加上#include<math.h>
3.随机函数rand()