选择结构程序设计
知识摘要
- switch函数的用法(case、break、default)
- %.2f 输出小数点后2位(详见题目4)
题目1:选择结构习题:求三个数的最大值
内容详情
题目1:
输入提示:输入仅一行,输入3个整数
输出提示:输出仅一行,输出3个数中的最大值
输入样本:3 2 6
输出样本:max=6
程序源码
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b,c,t,max;
scanf("%d%d%d",&a,&b,&c);
if (a > b)
t = a;
else
t = b;
if (t > c)
max = t;
else
max = c;
printf("max=%d\n",max);
return 0;
}
题目2:选择结构习题:百分值转换成其相应的等级
内容详情
题目2:
输入提示:输入仅一行,输入一个百分制的整数分数
输出提示:输出仅一行,输出其对应的字符信息
输入样本:85
输出样本:good
程序源码
#include <stdio.h>
#include <stdlib.h>
int main()
{
int score;
scanf("%d",&score);
if (score == 100)
printf("excellent");
else
switch ((int)score / 10) //(int)强制转换为整型
{
case 9 : printf("excellent");break;
case 8 : printf("good");break;
case 7 : printf("middle");break;
case 6 : printf("pass");break;
default : printf("fail");break;
}
return 0 ;
}
题目3:选择结构习题:三个数排序
内容详情
题目3:
输入提示:输入仅一行,输入三个整数。
输出提示:输出仅一行,按从大到小顺序输出这三个整数。
输入样本:2 4 3
输出样本:4>3>2
程序源码
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b,c,t;
scanf("%d%d%d",&a,&b,&c);
if (a < b)
{
t = b; b = a; a = t;
}
if(a < c)
{
t = c; c = a;a = t;
}
if (c > b)
{
t = c; c = b; b = t;
}
printf("%d>%d>%d",a,b,c);
return 0;
}
题目4:选择结构习题:分段函数
内容详情
题目4:
输入提示:输入仅一行,输入一个数值。
输出提示:输出仅一行,输出相应的数据值(小数点后保留2位有效位)或no definition(两单词中间有一空格)。
输入样本:1
输出样本:y=0.84
程序源码
#include <stdio.h>
#include <stdlib.h>
int main()
{
float x,y;
scanf("%f",&x);
if (x < 0||x>= 40)
printf("no definition");
else
{
switch ((int)x/10)
{
case 0 : y = sin(x);break;
case 1 : y = cos(x);break;
case 2 : y = exp(x) - 1;break;
case 3 : y = log(x + 1);break;
}
printf("y=%.2f",y);
}
return 0;
}
题目5:选择结构习题:输入0~6的数字,输出对应星期的英文
内容详情
题目5:
输入提示:输入任意一个整数。
输出提示:如果输入的整数在0~6之间,将输出对应星期的英文,否则输出
“Error”。
输入样本:0
输出样本:Sunday
程序源码
#include <stdio.h>
#include <stdlib.h>
int main()
{
int x;
scanf("%d",&x);
if (0<=x&&x<=6)
{
switch (x)
{
case 0 : printf("Sunday");break;
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;
}
}
else
printf("Error");
return 0;
}
题目6:选择结构习题:实现简单数值运算
内容详情
题目6:
输入提示:输入有两行,第一行为两个实数,两个实数之间用逗号分隔;第二行输入一个运算符
输出提示:输出仅一行,输出相应的运算式及计算结果,或输出input error(两单词中间有一空格)。
输入样本:11,5.9
+
输出样本:11.00+5.90=16.90
程序源码
#include <stdio.h>
#include <stdlib.h>
int main()
{
float a,b,c;
char x;
scanf("%f,%f\n",&a,&b);
scanf("%c",&x);
if(x =='/' && b == 0)
printf("input error");
else if (x != '+' && x != '-' && x != '*' && x != '/')
printf("input error");
else
{
switch (x)
{
case '+' : c = a + b;break;
case '-' : c = a - b ;break;
case '*' : c = a * b ;break;
case '/' : c = a / b ;break;
}
printf("%.2f%c%.2f=%.2f",a,x,b,c);
}
return 0;
}