Lab04-选择结构
文章目录
1. 任意字符转小写字母【简单】
用户从键盘输入任意的字符,请编写程序将大写字母转换成对应的小写字母,如果用户输入的不是大写字母则输出提示信息即可。
【输入】任意字符
【输出】 小写字母/或者错误信息
【输入】B
【输出】b
【输入】3
【输出】error
【输入】t
【输出】error
#include <stdio.h>
#include <stdlib.h>
int main()
{
char aaa;
scanf("%c",&aaa);
if(65 <= aaa && aaa <= 90)
printf("%c",aaa+32);
else
printf("error");
return 0;
}
2. 3个数的最大值【简单】
编写程序求解3个整数的最大值
【输入】3个整数
【输出】整数的最大值
e.g.
[input] 2 5 1
[output]5
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
if(a>=b)
if(a>=c)
printf("%d",a);
else
printf("%d",ccc);
else if(bbb>=ccc)
printf("%d",bbb);
else
printf("%d",ccc);
return 0;
}
3. 4个数的最大值【中等】
编写程序求解4个数的最大值
【input】4个整数
【output】最大值
e.g.
【input】1 4 6 3
【output】6
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b,c,d;
scanf("%d %d %d %d",&a,&b,&c,&d);
if(a>=b)
if(a>=c)
if(a>=d)
printf("%d",a);
else printf("%d",d);
else if(c>=d)
printf("%d",c);
else printf("%d",d);
else if(b>=c)
if(b>=d)
printf("%d",b);
else printf("%d",d);
else if(c>=d)
printf("%d",c);
else printf("%d",d);
return 0;
}
4. 3个数的中间值【中等】
编写程序求解3个数的中间值;若三个数中存在两个数相等的情况,则任意输出这两个数的值即可;例如:a=5;b=5;c=8;程序输出5;
【输入】3个整数
【输出】处于中间值的数
e.g.
[input] 2 5 1
[output]2
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
if(a>=b)
if(b>=c)
printf("%d",b);
else if(c>=a)
printf("%d",a);
else printf("%d",c);
else if(a>=c)
printf("%d",a);
else if(c>=b)
printf("%d",b);
else printf("%d",c);
return 0;
}
5. 三分支输出【简单】
有一函数
-1 (x<0)
y={ 0 (x=0)
1 (x>0)
编写程序,输入一个x值,输出y值。
【输入】 x值(整数)
【输出】y值
e.g
【输入】 255
【输出】1
#include <stdio.h>
#include <stdlib.h>
int main()
{
int x,y;
scanf("%d",&x);
if(x>0)
y=1;
else
if(x==0)
y=0;
else y=-1;
printf("%d",y);
return 0;
}
6. 星期的输出【简单】
Switch语句:用户输入1-7表示星期的数字,请输出对应的星期说明,如输入1,输出Monday;输入7,输出 Sunday
#include <stdio.h>
#include <stdlib.h>
int main()
{
int day;
scanf("%d",&day);
switch(day)
{
case 1:printf("Monday");
break;
case 2:printf("Tuesday");
break;
case 3:printf("Wednesday");
break;
case 4:printf("Thursday");
break;
case 5:printf("Friday");
break;
case 6:printf("Saturday");
break;
case 7:printf("Sunday");
break;
default:break;
}
return 0;
}
7. 元音辅音字母【简单】
Switch语句:用户输入小写字母 a,e,i,o,u,则输出原音字母,输入其他的小写字母,则输出辅音字母,小写字母之外的则输出: 输入错误;
【输入】一个字符
【输出】vowel(元音)、consonant(辅音)或者error
e.g.
【输入】a
【输出】vowel
#include <stdio.h>
#include <stdlib.h>
int main()
{
char letter;
scanf("%c",&letter);
switch(letter)
{
case 'a': case 'e': case 'i': case 'o': case 'u':
printf("vowel");
break;
case 'b':case 'c':case 'd':case 'f':case 'g':case 'h':case 'j':case 'k':
case 'l':case 'm':case 'n':case 'p':case 'q':case 'r':case 's':case 't':
case 'v':case 'w':case 'x':case 'y':case 'z':
printf("consonant");
break;
default: printf("error");
break;
}
return 0;
}
8. 加减乘除【简单】
编写简单的计算器执行+,-,,/的操作,例如627 ,3+6等,输出其结果;
【输入】加减乘除表达式(整数)
【输出】预算结果
e.g.
【输入】3+6=
【输出】9
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b;
char c;
scanf("%d%c%d=",&a,&c,&b);
switch(c)
{
case '+':printf("%d",a+b);
break;
case '-':printf("%d",a-b);
break;
case '*':printf("%d",a*b);
break;
case '/':printf("%d",a/b);
break;
default:
break;
}
return 0;
}
9. 日期翻译器【简单】
用户输入3个整数值,分别代表日、月、年。例如用户输入31 12 2003,程序就以31st December 2003的格式输出日期。
*必须在日期值的后面加上th、nd、st和rd。例如1st、2nd、3rd、4th、11th、12th、13th、14th、21st、22nd、23rd、24th
【输入】三个整数( 日、月、 年)
【输出】翻译后的日期(日 月 年)
e.g.
【输入】31 12 2003
【输出】31st December 2003
#include <stdio.h>
#include <stdlib.h>
int main()
{
int d,m,y;
scanf("%d %d %d",&d,&m,&y);
switch(d)
{
case 1:case 21:case 31:
printf("%dst",d);
break;
case 2:case 22:
printf("%dnd",d);
break;
case 3:case 23:
printf("%drd",d);
break;
default:printf("%dth",d);
break;
}
switch(m)
{
case 1:printf(" January");
break;
case 2:printf(" February");
break;
case 3:printf(" March");
break;
case 4:printf(" April");
break;
case 5:printf(" May");
break;
case 6:printf(" June");
break;
case 7:printf(" July");
break;
case 8:printf(" August");
break;
case 9:printf(" September");
break;
case 10:printf(" October");
break;
case 11:printf(" November");
break;
case 12:printf(" December");
break;
default:
break;
}
printf(" %d",y);
return 0;
}
10. 闰年【中等】
36.(选择)用户输入年和月,你的程序判断该年是否闰年,并根据给出的月份判断当前的季节和该月有多少天?闰年的条件是年份能够被4整除但不能被100整除,或者能被400整除。3-5月为春季,依此类推。答案间用空格隔开。
样例输入1:
2018 10
样例输出1:
CommonYear Autumn 31
样例输入2:
2008 8
样例输出2:
LeapYear Summer 31
#include <stdio.h>
#include <stdlib.h>
int main()
{
int y,m;
scanf("%d %d",&y,&m);
if(0==y%4 && 0!=y%100 || 0==y%400)
{
printf("LeapYear ");
switch(m)
{
case 12:case 1:printf("Winter 31");break;
case 2:printf("Winter 29");break;
case 3:case 5:printf("Spring 31");break;
case 4:printf("Spring 30");break;
case 6:printf("Summer 30");break;
case 7:case 8:printf("Summer 31");break;
case 9:case 11:printf("Autumn 30");break;
case 10:printf("Autumn 31");break;
default:break;
}
}
else
{
printf("CommonYear ");
switch(m)
{
case 12:case 1:printf("Winter 31");break;
case 2:printf("Winter 28");break;
case 3:case 5:printf("Spring 31");break;
case 4:printf("Spring 30");break;
case 6:printf("Summer 30");break;
case 7:case 8:printf("Summer 31");break;
case 9:case 11:printf("Autumn 30");break;
case 10:printf("Autumn 31");break;
default:break;
}
}
return 0;
}
11. 剪刀石头布【中等】
(选择)Alice 与 Bob 玩剪刀石头布的游戏。请你输出游戏的结果。
【输入】
两个大写字母,以空格隔开。
第一个字母代表 Alice 的选择,第一个字母代表 Bob 的选择。
S 代表剪刀,R 代表石头,C 代表布。输入中不会出现其它字符。
【输出】
一个字符串,为胜利的玩家的名称,行末没有换行。
如果 Alice 获胜,则输出 Alice ;
如果 Bob 获胜,则输出 Bob ;
如果平局,则输出 Tie 。
【样例输入】
S R
【样例输出】
Bob
#include <stdio.h>
#include <stdlib.h>
int main()
{
char a,b;
scanf("%c %c",&a,&b);
if(a==b)
printf("Tie");
else if(a==67&&b==82 || a==82&&b==83 || a==83&&b==67)
printf("Alice");
else
printf("Bob");
return 0;
}