c语言实验报告
实验项目:分支结构实验 姓名:熊承启
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语言实验报告的更多相关文章
- C语言实验报告二
实验一:第11次实验作业报告 题目:方阵循环右移 实验要求:将给定n×n方阵中的每个元素循环向右移m个位置,即将第0.1.⋯.n−1列变换为第n−m.n−m+1.⋯.n−1.0.1.⋯.n−m−1列. ...
- R语言- 实验报告 - 利用R语言脚本与Java相互调用
一. 实训内容 利用R语言对Java项目程序进行调用,本实验包括利用R语言对java的.java文件进行编译和执行输出. 在Java中调用R语言程序.本实验通过eclipse编写Java程序的方式,调 ...
- 第一次C语言实验报告
一.实验题目,设计思路,实现方法 实验四4-2-9三个数由小到大输出,要求比较三数大小并按顺序输出.运用穷举法列举所有可能性再对应输出.运用多分支结构. 实验四4-2-4 三天打鱼两天晒网,运用循环结 ...
- c语言实验报告(四) 从键盘输入字符串a和字符串b,并在a串中的最小元素(不含结束符)后面插入字符串b.
a串中最小元素后的字符被舍弃了. #include<stdio.h>#include<string.h>void main(){ int i,min=0; char a[2 ...
- C语言实验报告(五) 用自定义函数求2~n之间的素数
#include<stdio.h>#include <math.h>int main(){ int i,n; printf("input n:"); ...
- C语言实验报告(五) 两个正整数的最大公约数
编程实现求两个正整数的最大公约数,要求计算最大公约数用函数fun(int a,int b)实现. #include<stdio.h>void main(){ int n,a,b; in ...
- C语言实验报告(四)完全数
完全数,又称完美数或者完备数.是一些特殊的自然数.它所有的真因子的和,恰好等于它本身.编程找出1000以内的所有完全数,并输出该数成为完全数的因子. (例如6=1+2+3.按照6,its factor ...
- 第二次C语言实验报告
#一.设计题目,设计思路,实现方法 ##设计题目 15-10 找最长的字符串,14-5 指定位置输出字符串,13-6 数组循环右移,12-5 查找指定字符,11-5 打印杨辉三角. ##设计思路 15 ...
- C语言程序设计实验报告三
C程序设计实验报告 姓 名:张美盛 实验地点:家 实验时间:2020年3月29日 实验项目:4.3.1 If语句的应用 4.3.2 switch-case的应用 4.3.3 switch-case嵌套 ...
随机推荐
- Android向通讯录添加联系人的一般方法
Android向通讯录添加联系人的一般方法 以一个简单的例子加以说明,记得需要相应的权限: 测试代码,关键的内容就在add函数里面. package zhangphil.demo; import an ...
- Vue混入
Vue 混入 混入 (mixins) 是一种分发 Vue 组件中可复用功能的非常灵活的方式.混入对象可以包含任意组件选项.当组件使用混入对象时,所有混入对象的选项将被混入该组件本身的选项. 数据对象合 ...
- use this method get wifi from notebook
sudo apt dist-upgrade http://cache.baiducontent.com/c?m=9d78d513d9981de90fb3837e7c478a265b09c0307a8c ...
- C语言:函数嵌套2^2!+3^2!
#include <stdio.h> long f1(int p); long f2(int q); int main (){ int i = 0; long s = 0; for(i = ...
- elasticsearch5.0以上版本及head插件的安装
本文转载至:https://www.cnblogs.com/hts-technology/p/8477258.html(针对5.0以上版本) 对于es5.0以下的版本可以参考:https://www. ...
- 本地安装了Maven但Eclipse的Preferences中没有Maven怎么办?
Maven是帮助我们进行项目构建管理的一个重要工具,Emmmmmm,因为还是个小白,这里就不装大明白了,就我目前了解Maven是用来管理jar包的,想要在Eclipse上运行就要将它集成到Eclips ...
- ASP中替换掉换行符<br>
function HtmlStrReplace(Str) if Str="" or isnull(Str) then HtmlStrReplace="" ...
- 【转】git - 简易指南
原文链接:http://www.bootcss.com/p/git-guide/ 作者:罗杰·杜德勒 感谢:@tfnico, @fhd and Namics 其他语言 english, deutsch ...
- 运行Office 2007安装程序提示:"找不到Office.zh-cn\OfficeMUI.xml"(转载)亲测
去网上查结果原来是Office 2007和Visual Studio 2008 Authoring Component组件相冲突,网上说用VS.Net 2008光盘WCU\WebDesignerCor ...
- 第十五周翻译-《Pro SQL Server Internals, 2nd edition》
<Pro SQL Server Internals, 2nd edition> 作者:Dmitri Korotkevitch 翻译:赖慧芳 译文: 55-58页 第三章 统计 SQL Se ...