实验项目:分支结构实验   姓名:熊承启

4.3.1if语句的应用

问题描述:

读入三个分别表示箱子长宽高的整数值,判断并输出该箱子是长方体还是正方体。

程序框图:

程序实现:

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

4.3.2switch/case语句的应用

问题描述:

统一程序实现如下功能:商店有打印纸(18元/本)、墨盒(132元/个)、光盘(4。5元/片)出售,商店进行优惠酬宾活动。具体做法如下:顾客购买商品的总额达到了100元,优惠5%;达到了200元,以上优惠6%;达到了300元以上,优惠7%;达到了400元以上,优惠8%;达到了500元以上,优惠10%。根据不同的购买量,打印应付货款。

程序框图:

程序实现:

#include <stdio.h>
int main()
{
int x,y,z,n;
float sum=0;
printf("请输入打印纸,墨盒,光盘的数量:\n");
scanf("%d,%d,%d",&x,&y,&z);
sum=18*x+132*y+4.5*z;
printf("总价: %f\n",sum);
n=sum/100;
switch(n)
{
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:
case 6:
case 7:
case 8:
case 9:printf("sum=%2f",sum*0.9);break;
default: printf("sum=%2f",sum); } }

4.3.3switch/case语句嵌套if语句的应用

问题描述:

输入某一年月,输入该月的天数

程序框图:

程序实现:

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

4.3.4switch/case结构的嵌套应用

问题描述:.

编写一个自动售货机的程序。该程序应具有如下功能:有二级菜单,一级菜单是商品类型的选择;二级菜单是具体商品的选择(商品价格和品种可以自拟)。顾客先选择商品类型,然后选择具体商品,输入购买数量。自动售货机根据选择的商品和输入的数量,计算并显示所选商品的总金额。

程序实现

#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.5元/支) 2.牙膏(6.2元/支)\n");
printf(" 3.肥皂(2 元/块) 4.毛巾(8.6元/条)\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.笔(3元/支) 2.笔记本(1.2元/个)\n");
printf(" 3.文件夹(12元/个) 4.文具盒(8.6元/个)\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.6元/包) 2.盐(1元/包)\n");
printf(" 3.饼(2元/个) 4.方便面(3.6元/条)\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元\n",sum);
return 0;
}

问题阐述:

该题容易在格式上出现错误,三个分别的switch结构并列

4.3.5分析程序

(1).运行以下程序,分析输出结果。

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

  

(2).运行下列程序,分析错误原因,请修改程序:

更改前

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

  更改后

#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);
}

这道题是关于C语言表达式与数学表达式的区别,原题目中if后写的是(5<num<10),这是数学表达式的写法,C语言表达式的正确写法应该是(num>5&&num<10)。

三、实验小结

这节实验课运行的程序有些是比较难想出来的,比如说商店打折导致分支的条件很多时,这些都是需要认真思考的。

1.迅速地进行中英文输入法的切换。

2.学会区分数学表达式和C语言表达式的不同。

3.记得case后要空一格才能接数字。

c语言实验报告的更多相关文章

  1. C语言实验报告二

    实验一:第11次实验作业报告 题目:方阵循环右移 实验要求:将给定n×n方阵中的每个元素循环向右移m个位置,即将第0.1.⋯.n−1列变换为第n−m.n−m+1.⋯.n−1.0.1.⋯.n−m−1列. ...

  2. R语言- 实验报告 - 利用R语言脚本与Java相互调用

    一. 实训内容 利用R语言对Java项目程序进行调用,本实验包括利用R语言对java的.java文件进行编译和执行输出. 在Java中调用R语言程序.本实验通过eclipse编写Java程序的方式,调 ...

  3. 第一次C语言实验报告

    一.实验题目,设计思路,实现方法 实验四4-2-9三个数由小到大输出,要求比较三数大小并按顺序输出.运用穷举法列举所有可能性再对应输出.运用多分支结构. 实验四4-2-4 三天打鱼两天晒网,运用循环结 ...

  4. c语言实验报告(四) 从键盘输入字符串a和字符串b,并在a串中的最小元素(不含结束符)后面插入字符串b.

    a串中最小元素后的字符被舍弃了. #include<stdio.h>#include<string.h>void main(){  int i,min=0;  char a[2 ...

  5. C语言实验报告(五) 用自定义函数求2~n之间的素数

    #include<stdio.h>#include <math.h>int main(){  int i,n;  printf("input n:");  ...

  6. C语言实验报告(五) 两个正整数的最大公约数

    编程实现求两个正整数的最大公约数,要求计算最大公约数用函数fun(int a,int b)实现. #include<stdio.h>void main(){  int n,a,b;  in ...

  7. C语言实验报告(四)完全数

    完全数,又称完美数或者完备数.是一些特殊的自然数.它所有的真因子的和,恰好等于它本身.编程找出1000以内的所有完全数,并输出该数成为完全数的因子. (例如6=1+2+3.按照6,its factor ...

  8. 第二次C语言实验报告

    #一.设计题目,设计思路,实现方法 ##设计题目 15-10 找最长的字符串,14-5 指定位置输出字符串,13-6 数组循环右移,12-5 查找指定字符,11-5 打印杨辉三角. ##设计思路 15 ...

  9. C语言程序设计实验报告三

    C程序设计实验报告 姓 名:张美盛 实验地点:家 实验时间:2020年3月29日 实验项目:4.3.1 If语句的应用 4.3.2 switch-case的应用 4.3.3 switch-case嵌套 ...

随机推荐

  1. __name__ __doc__ __package__

    __name__只有主程序调用才可以 如果自己的唯一入口被调用 if __name__ == '__main__' : 才执行下面的代码 """ 这个是format的注释 ...

  2. 页面显示LCD液晶字体或者其他特殊字体

    如果web项目中需要用到LCD液晶字体显示数值(如下图所示)该怎么办? 在这就需要用到@font-face(具体看一下语法) /* 定义 */ @font-face { font-family: 'M ...

  3. presto 函数中使用子查询

    我们已知 在sql中子查询可以配合  in 或者 exists 来使用,但是如何把子查询的结果传给函数呢? 场景: 我们有一个  省份表  数据如下: id   province 1    广东 2  ...

  4. Vue混入

    Vue 混入 混入 (mixins) 是一种分发 Vue 组件中可复用功能的非常灵活的方式.混入对象可以包含任意组件选项.当组件使用混入对象时,所有混入对象的选项将被混入该组件本身的选项. 数据对象合 ...

  5. spring boot 全局配置属性一览

    # =================================================================== # COMMON SPRING BOOT PROPERTIE ...

  6. vue搭建

    ~感觉再不学点新技能,马上就要被淘汰了== 1.先安装node,直接点击下一步就OK  node官网   https://nodejs.org/en/ 2.安装完成之后,打开命令行工具,快捷键是cmd ...

  7. [工控安全]“祝融”—一种针对PLC控制系统的欺骗攻击病毒

    “祝融”作为一种针对传统PLC控制系统的欺骗攻击病毒,所述的典型的PLC控制系统通常包括两部分: 用于组态.编程.监视.控制的工程师站(通常是PC设备) PLC控制器(通常如西门子.施耐德.三菱等厂家 ...

  8. Codeforces Round #245 (Div. 1) B. Working out (dp)

    题目:http://codeforces.com/problemset/problem/429/B 第一个人初始位置在(1,1),他必须走到(n,m)只能往下或者往右 第二个人初始位置在(n,1),他 ...

  9. Jmeter性能结果分析

    1.压测结果指标 Samples:表示一共发出的请求数 Average:平均响应时间,默认情况下是单个Request的平均响应时间(ms) Error%:测试出现的错误请求数量百分比.若出现错误就要看 ...

  10. 使用context关闭协程以及协程中的协程

    package main import ( "sync" "context" "fmt" "time" ) var wg ...