实验二 分支结构程序设计  方丹丽 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>   
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;       
}
正确解题过程如下
#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;       
}
[结论:]      结果正确。
第二题   编程题。(P34    第4题)
                输入五级制成绩(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
解题过程如下
#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”。
输入输出示例:(运行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
解题程序如下:
#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%
解题过程如下
#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小时内删除。