第四章 分支结构实验

Posted wace2020

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第四章 分支结构实验相关的知识,希望对你有一定的参考价值。

C程序设计实验报告

实验项目:分支结构实验

姓名:王承伟    实验地点:家    实验时间:2020.3.29

一、实验目的与要求

1. 掌握C语言逻辑值的表示方法(0代表“假”,1代表“真”)

2.学会正确地使用关系表达式和逻辑表达式

3.掌握各种形式的if语句语法和使用方法。if语句中if和else的匹配关系,以及if语句的嵌套

4.熟练掌握switch语句的语法和使用方法,注意在switch语句中break语句的用法及switch语句的嵌套


二、实验内容

1、实验练习:4.3.1、if语句的应用

2实验代码:

#include<stdio.h>
main()
{
    int l,w,h;
    printf("请输入箱子的长,宽,高;
");
    scanf("%d%d%d",&l,&w,&h);
    if(l==w&&l==h&&w==h)
    printf("该箱子是正方体
");
    else
    printf("该箱子是长方体
");
    
 } 

 

3问题分析:无

 

2、实验练习:4.3.2、switch……case语句的应用

2实验代码:

#include<stdio.h>
main()
{
    int a,b,c,x;
    float sum;
    printf("打印纸 18 yuan/本  墨盒 132yuan/个   光盘 4.5yuan/张 ");
    scanf("%d%d%d",&a,&b,&c);
    sum=18*a+132*b+4.5*c;
    x=sum/100;
    switch(x)
    {
      case 0:printf("sum=%.2f ",sum); break;
      
      case 1:printf("sum=%.2f ",sum*0.95); break;
      
      case 2:printf("sum=%.2f ",sum*0.94); break;
       
      case 3:printf("sum=%.2f ",sum*0.93); break;
            
      case 4:printf("sum=%.2f ",sum*0.92); break;
            
      case 5:printf("sum=%.2f ",sum*0.90); break;
    }
 }

 

3问题分析:

   1.如何用上switch..case结构? 通过除以一百取整,可得到百位数,然后即可用case表示

 

3、实验练习:4.3.3、switch……case语句嵌套if语句的应用

2实验代码:

#include<stdio.h>
main()
{
    int year,month,days;
    printf("please enter year and month:
");
    scanf("%d%d",&year,&month);
    switch(month)
{
        case 2:if((year%4==0&&(year%100==!0))||year%400==0)
            days=29;
            else
            days=28;
            break;
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:days=31;
            break;
            case 4:
            case 6:
            case 9:
            case 11:days=30;
            break;
    }
    printf("天数为:%d",days);
}

 

3问题分析:无

 

4、实验练习:4.3.4、switch……case语句嵌套的应用

2实验代码:

#include<stdio.h>
int main()
{
    int x,n,y;
    float sum=0.0;
    printf("请选择:1,日用品 2,文具 3,食品
");
    scanf("%d",&x);
    switch(x)
    {
        case 1:printf("请选择:1.牙刷(3.5YUAN/支) 2.牙膏(6.2yuan/支)
");
               printf("       3.肥皂(2yuan/块)   4.毛巾(8.6yuan/条)
");
               scanf("%d",&y);
               printf("数量?");
               scanf("%d",&n);
               switch(y)
               {
                   case 1:sum=3.5*n;break;
                   case 2:sum=6.2*n;break;
                   case 3:sum=2*n;break;
                   case 4:sum=8.6*n;break;
                } 
                break;
        case 2:printf("请选择:1.笔(3YUAN/支) 2.笔记本(1.2yuan/支)
");
               printf("       3.文件夹(12yuan/块)   4.文具盒(8.6yuan/条)
");
               scanf("%d",&y);
               printf("数量?");
               scanf("%d",&n);
               switch(y)
               {
                   case 1:sum=3*n;break;
                   case 2:sum=1.2*n;break;
                   case 3:sum=12*n;break;
                   case 4:sum=8.6*n;break;
               }
               break;
        case 3:printf("请选择:1.白糖(3.6YUAN/支) 2.盐(1yuan/支)
");
               printf("       3.饼(2yuan/块)   4.方便面(3.6yuan/条)
");
               scanf("%d",&y);
               printf("数量?");
               scanf("%d",&n);
               switch(y)
               {
                   case 1:sum=3.6*n;break;
                   case 2:sum=1*n;break;
                   case 3:sum=2*n;break;
                   case 4:sum=3.6*n;break;
               }
               break;
              
     } 
    printf("总计:%.2f yuan
",sum);
    return 0;
 } 

 

3问题分析:无

 

5、实验练习:4.3.5、分析程序

2实验代码:

 

#include<stdio.h>
int main()
{
    double x=1000/3.0;
    double y=x-333.0;
    double z=3*y-1.0;
    printf("x=%lf
",x);
    printf("y=%lf
",y);
    printf("z=%lf
",z);
    if(z==0) printf("z==0.
");
         else printf("z不等于0.
");
    return 0;
}

 

 

#include<stdio.h>
int main()
{
    int num=20;
    if(5<num&&num<10)
        printf("%d in range (5,10)!
",num);
    else
    printf("%d out of range (5,10)!
",num); 
}

 

3问题分析:无

三、项目实训:计算器的实现

1、流程图

2、设计过程中遇到的问题及改进的方法

  不能够实现重复的运算。。。。使用了 do...while 结构实现了循环

3、代码

#include<stdio.h>

main()
{
    int x,y,z,a,b,c,d,m;
 do{
 
    printf("选择计算类型:
 1--------加法
 2--------减法
 3--------乘法
 4--------除法
");    
    scanf("%d",&z);
    printf("z=%d
",z);     
    printf("请输入计算的两个数:"); 
    scanf("%d%d",&x,&y);    
    a=x+y;
    b=x-y;
    c=x*y;
    d=x/y;    
    switch(z)    
    {
     case 1:printf("%d+%d=%d",x,y,a);
                break;
     case 2:printf("%d-%d=%d",x,y,b);        
                break;  
     case 3:printf("%d*%d=%d",x,y,c);        
                break;  
     case 4: printf("%d/%d=%d",x,y,d);        
                break;  
    default:printf("输出错误!");
    }
    printf("继续输入请按 1 
");
    scanf("%d",&m); 
  }  while(m==1);
}

 

四、实验小结

 通过以上几个实验,让我对switch,,case结构的使用更加熟练,更加理解switch,,case结构的特点,在编写实验的过程中,也暴露出了自己一些常见的错误,打错没有,小错不断,这也说明了自身的编写习惯还有待进步,在最后的计算机的编写中,更是体现了这一点,在最开始的编写中,经过了很多遍的调试才成功,而且最初的计算器只有最基础的计算能力,经过不断的改写和自己找资料,使得计算器实现了重复的计算,在这个过程中,感觉收获了很多,这种类似的实验很有意义

以上是关于第四章 分支结构实验的主要内容,如果未能解决你的问题,请参考以下文章

分支结构实验

第四章 流程控制

第三次实验计算分段函数 第四次计算分段函数和循环NEW 第五次分支+循环加强版 实验报告

20162309《程序设计与设计结构》第四次实验报告

实验四——多分支结构及本章总结

实验四——多分支结构及本章总结