一、實驗內容
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、附加題中,計算時應用實型常量,輸出時應用整形常量