实验三 分支结构
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三分支结构
3.1 显示两级成绩
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat (0<repeat<10),做repeat 次下列运算:
输入一个学生的数学成绩,如果它低于60,输出“Fail” ,否则,输出“Pass” 。
例:括号内是说明
输入
2 (repeat=2)
60 59
输出
Pass
Fail
#include <stdio.h>
int main( )
{
int ri, repeat;
int mark;
scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++){
scanf("%d",&mark);
3.2 找最小值
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat (0<repeat<10),做repeat 次下列运算:
输入四个整数,输出其中的最小值。
例:括号内是说明
输入
3 (repeat=3)
12 6 1 90
10 40 30 20
-1 -3 -4 -5
输出
min is 1 (12 6 1 90 中的最小值是1)
min is 10 (10 40 30 20 中的最小值是10)
min is -5 (-1 -3 -4 -5 中的最小值是-5)
#include <stdio.h>
int main( )
{
int ri, repeat;
int a, b, c, d, min;
scanf("%d", &repeat);
scanf("%d%d%d%d", &a, &b, &c, &d);
if(a<b) min=a;
else min=b;
if(min>c) min=c;
if(min>d) min=d;
printf("min is %d\n", min);
}
return 0;
}
3.3 求三角形的面积和周长
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat (0<repeat<10),做repeat 次下列运算:
输入三角形的三条边a, b, c,如果能构成一个三角形,输出面积area 和周长perimeter(保留 2 位小数);否则,输出“These sides do not correspond to a valid triangle” 。
在一个三角形中,任意两边之和大于第三边。
三角形的面积计算公式:
aere*area = s(s-a)(s-b)(s-c)
其中:s = (a+b+c)/2
例:括号内是说明
输入
2 (repeat=2)
5 5 3
1 1 4
4 1 1
1 4 1
输出
area=7.15; perimeter=13.00
These sides do not correspond to a valid triangle
These sides do not correspond to a valid triangle
These sides do not correspond to a valid triangle
#include <stdio.h>
#include <math.h>
#include <stdio.h>
#include <math.h>
int main( )
{
int ri, repeat;
float a, b, c, area, perimeter, s;
scanf("%d", &repeat);
scanf("%f%f%f", &a, &b, &c);
if(a+b>c&&b+c>a&&a+c>b){
s=(a+b+c)/2;
area=(float)sqrt(s*(s-a)*(s-b)*(s-c));
perimeter=a+b+c;
printf("area=%.2f,perimeter=%.2f\n",area,perimeter);
}
else
printf("There sides do not correspond to a valid triangle\n");
}
return 0;
}
3.4 判断数的符号
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat (0<repeat<10),做repeat 次下列运算:
输入整数x,若x 大于0,y=1;若x 等于0,y=0;否则,y=-1,最后输出y。
例:括号内是说明
输入
3 (repeat=3)
2 -8 0
输出
1 (x=
2 时y=1)
-1 (x=-8 时y=-1)
0 (x=0 时y=0)
#include <stdio.h>
int main( )
{
int ri, repeat;
int x, y;
scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++){
scanf("%d",&x);
if(x>0) y=1;
else if(x<0) y=-1;
else y=0;
printf("%d\n",y);
}
return 0;
}
3.5 计算个人所得税
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat (0<repeat<10),做repeat 次下列运算:
输入一个职工的月薪salary,输出应交的个人所得税tax(保留 2 位小数)。
tax = rate * (salary-850)
当salary <= 850 时,rate = 0;
当850 < salary <= 1350 时,rate = 5;
当1350 < salary <= 2850 时,rate = 10;
当2850 < salary <= 5850 时,rate = 15;
当5850 < salary 时,rate = 20;
例:括号内是说明
输入
5 (repeat=4)
1010.87
32098.76
800
4010
2850
输出
tax=8.04
tax=6249.75
tax=0.00
tax=474.00
tax=200.00
#include <stdio.h>
int main( )
{
int ri, repeat;
float rate, salary, tax;
scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++){
scanf("%f", &salary);
if (salary<=850) rate =0;
else if (salary<=1350) rate=5;
else if (salary<=2850) rate=10;
else if (salary<=5850) rate=15;
else rate=20;
tax = rate * (salary-850)/100;
printf("tax=%.2f\n", tax);
}
return 0;
}
3.6 显示水果的价格
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat (0<repeat<10),做repeat 次下列运算:
以下4 种水果的单价分别是 3.00 元/公斤,2.50 元/公斤,4.10 元/公斤,10.20 元/公斤。
[1] apples
[2] pears
[3] oranges
[4] grapes
输入水果的编号,输出该水果的单价(保留 2 位小数)。
如果输入不正确的编号,显示单价为
0。
例:括号内是说明
输入
4 (repeat=4)
3 (oranges 的编号)
输出
[1] apples
[2] pears
[3] oranges
[4] grapes
price=4.10
法一:
#include <stdio.h>
int main( )
{
int ri, repeat;
int choice;
float price;
scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++){
printf("[1] apples\n");
printf("[2] pears\n");
printf("[3] oranges\n");
printf("[4] grapes\n");
scanf("%d", &choice);
if (choice==1) price=(float)3.00;
else if (choice==2) price=(float)2.50;
else if (choice==3) price=(float)4.10;
else if (choice==4) price=(float)10.20;
else price=0;
printf("price=%0.2f\n", price);
}
return 0;
}
#include <stdio.h>
int main( )
{
int ri, repeat;
int choice;
float price;
scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++){
printf("[1] apples\n");
printf("[2] pears\n");
printf("[3] oranges\n");
printf("[4] grapes\n");
scanf("%d", &choice);
switch(choice){
case 1:price=(float)3.00;break;
case 2:price=(float)2.50;break;
case 3:price=(float)4.10;break;
case 4:price=(float)10.20;break;
default: price=0;
}
printf("price=%0.2f\n", price);
}
return 0;
}
3.7 字母转换
程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat (0<repeat<10),做repeat 次下列运算:
输入一个字符,如果它是大写字母,输出相应的小写字母;如果它是小写字母,输出相应的
大写字母;否则,原样输出。
例:括号内是说明
输入
3F=y (repeat=3, 输入的3 个字符是'F', '=', 'y')
输出
f=Y
#include <stdio.h>
int main( )
{
int ri, repeat;
scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++){
ch=getchar();
if (ch>'A' && ch<'Z') ch=ch+32;
else if (ch>'a' && ch<'z') ch=ch-32;
putchar(ch);
}
return 0;
}。