码迷,mamicode.com
首页 > 其他好文 > 详细

第四章 分支结构实验

时间:2020-03-29 17:59:17      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:形式   ext   line   错误   插入   应用   问题分析   匹配   else   

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("请输入箱子的长,宽,高;\n");
    scanf("%d%d%d",&l,&w,&h);
    if(l==w&&l==h&&w==h)
    printf("该箱子是正方体\n");
    else
    printf("该箱子是长方体\n");
    
 } 

 

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/张\n");
    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\n",sum); break;
      
      case 1:printf("sum=%.2f\n",sum*0.95); break;
      
      case 2:printf("sum=%.2f\n",sum*0.94); break;
       
      case 3:printf("sum=%.2f\n",sum*0.93); break;
            
      case 4:printf("sum=%.2f\n",sum*0.92); break;
            
      case 5:printf("sum=%.2f\n",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:\n");
    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,食品\n");
    scanf("%d",&x);
    switch(x)
    {
        case 1:printf("请选择:1.牙刷(3.5YUAN/支) 2.牙膏(6.2yuan/支)\n");
               printf("       3.肥皂(2yuan/块)   4.毛巾(8.6yuan/条)\n");
               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/支)\n");
               printf("       3.文件夹(12yuan/块)   4.文具盒(8.6yuan/条)\n");
               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/支)\n");
               printf("       3.饼(2yuan/块)   4.方便面(3.6yuan/条)\n");
               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\n",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\n",x);
    printf("y=%lf\n",y);
    printf("z=%lf\n",z);
    if(z==0) printf("z==0.\n");
         else printf("z不等于0.\n");
    return 0;
}

 

 

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

 

3问题分析:无

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

1、流程图

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

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

3、代码

#include<stdio.h>

main()
{
    int x,y,z,a,b,c,d,m;
 do{
 
    printf("选择计算类型:\n 1--------加法\n 2--------减法\n 3--------乘法\n 4--------除法\n");    
    scanf("%d",&z);
    printf("z=%d\n",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 \n");
    scanf("%d",&m); 
  }  while(m==1);
}

 

四、实验小结

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

第四章 分支结构实验

标签:形式   ext   line   错误   插入   应用   问题分析   匹配   else   

原文地址:https://www.cnblogs.com/wace2020/p/12593615.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!