实验二 分支结构程序设计 方丹丽 09224009 机电0914班
[实验目的]
(1)学会调试程序的基本步骤。
(2)掌握switch语句的使用和break的作用。
(3)熟练掌握分支结构程序设计。
[实验内容]
第一题,调试程序(实验教材P15 实验2.2),按照书中介绍的方法进行调试。
改正下列程序中的错误,输入x计算并输出下列分段函数f(x)的值(保留1位小数)。
y=f(x)=1/x (x≠0)
=0 (x=0)
源程序:(有错误)
#include <stdio.h>
改正下列程序中的错误,输入x计算并输出下列分段函数f(x)的值(保留1位小数)。
y=f(x)=1/x (x≠0)
=0 (x=0)
源程序:(有错误)
#include <stdio.h>
int main(void)
{
double x, y;
printf("Enter x: ");
scanf("%lf", x);
if(x != 0){
y = 1 / x
}
else{
y = 0;
}
printf("f(%.2f) = %.1f\n", x, y);
return 0;
}
{
double x, y;
printf("Enter x: ");
scanf("%lf", x);
if(x != 0){
y = 1 / x
}
else{
y = 0;
}
printf("f(%.2f) = %.1f\n", x, y);
return 0;
}
正确解题过程如下
#include <stdio.h>
int main(void)
{
double x, y;
printf("Enter x: ");
scanf("%lf", x);
if(x != 0){
y = 1 / x
}
else{
y = 0;
}
printf("f(%.2f) = %.1f\n", x, y);
int main(void)
{
double x, y;
printf("Enter x: ");
scanf("%lf", x);
if(x != 0){
y = 1 / x
}
else{
y = 0;
}
printf("f(%.2f) = %.1f\n", x, y);
return 0;
}
[结论:] 结果正确。
第二题. 编程题。(P34 第4题)
输入五级制成绩(A~E),输出相应的百分制成绩(0~100)区间,要求使用switch语句。五级制成绩对应得百分制成绩区间为:A(90~100)、B(80~89)、C(70~79)、D(6
输入五级制成绩(A~E),输出相应的百分制成绩(0~100)区间,要求使用switch语句。五级制成绩对应得百分制成绩区间为:A(90~100)、B(80~89)、C(70~79)、D(6
0~69)和E (0~59)。
输入输出示例:
Input Grade:B
B对应的百分制成绩区间是80~89
输入输出示例:
Input Grade:B
B对应的百分制成绩区间是80~89
解题过程如下
#include<stdio.h>
main(void)
{
char a;
printf("Input Grade:");
scanf("%ch",&a);
switch(a)
{
case 'A':printf("A对应的百分制成绩区间是90~100\n");break;
case 'B':printf("B对应的百分制成绩区间是80~89\n");break;
case 'C':printf("C对应的百分制成绩区间是70~79\n");break;
case 'D':printf("D对应的百分制成绩区间是60~69\n");break;
case 'E':printf("E对应的百分制成绩区间是0~59\n");break;
default:printf("error\n");
}
return 0;
}
[结论:] 结果正确。
第三题
编程题。(P34 第7题)
输入三角形3条边a、b、c,如果能构成一个三角形,输出面积area和周长perimeter(保留2位小数);否则,输出“These sides do not correspond to a valid triangle”。
输入三角形3条边a、b、c,如果能构成一个三角形,输出面积area和周长perimeter(保留2位小数);否则,输出“These sides do not correspond to a valid triangle”。
输入输出示例:(运行2次)
第一次运行:
Enter 3 sides of the triangle:5 5 3
area=7.15; perimeter=13.00
第二次运行:
Enter 3 sides of the triangle:1 4 1
These sides do not correspond to a valid triangle
第一次运行:
Enter 3 sides of the triangle:5 5 3
area=7.15; perimeter=13.00
第二次运行:
Enter 3 sides of the triangle:1 4 1
These sides do not correspond to a valid triangle
解题程序如下:
#include <stdio.h>
#include <math.h>
void main()
{
int a,b,c;
double area,perimeter;
printf("Enter 3 sides of the triangle:\n");
scanf("%d%d%d",&a,&b,&c);
switch语句必须使用break吗 if(a+b>c&&a+c>b&&b+c>a){
area=sqrt((a+b+c)*(a+b-c)*(a+c-b)*(b+c-a))/4.;
perimeter=a+b+c;}
else {
printf("These sides do not correspond to a valid triangle");}
printf("area=%.2f;perimeter=%.2f\n",area,perimeter);
}
[结论:] 结果正确。
.
第四题 编程题。(P35 第8题)
输入月薪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%
输入月薪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%
解题过程如下
#include <stdio.h>
int main(void)
{
int salary;double rate;double tax;
printf("Enter salary:");
scanf("%d",&salary);
printf("Enter rate:");
scanf("%lf",&rate);
switch(salary)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论