第四章分支结构实验

实验项目:第四章实验设计

实验项目:4.3.1  if语句的应用 ,4.3.2  switch case的应用 ,4.3.3  switch case嵌套if语句的应用 ,4.3.4  switch case结构嵌套的运用 ,4.3.5  分析程序,  计算器。

姓名:蔡鹏 实验地点:家中  实验时间:2020.03.25

实验目的与要求:

1、掌握各种形式的if语句语法和使用方法

2、掌握使用算术运算符和运算规则,switch  case语句的使用方法

3、掌握switch  case结构的嵌套使用,break语句的用法

4、熟练掌握C语言的运算符,即运算符的优先级和结合性、运算规则、运算对象类型等。

实验内容:

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

(1)问题的简单描述:读入3个表示箱子长、宽、高的整数值,判断并输出是正方体还是长方体。

(2)实验代码:

#include

int main()

{

int l,w,h;

printf("请输入箱子的长、宽、高:\n");

scanf("%d,%d,%d",&l,&w,&h);

if(l==w&&w==h&&l==h)

printf("该箱子是正方体。\n");

else

printf("该箱子是长方体。\n");

return 0;

}

(3)问题分析:比较长,宽,高用 l==w&&w==h&&l==h

2.实验练习:4.3.2  switch case的应用

(1)问题的简单描述:编写程序实现如下功能:商店有打印纸(18元/本)、墨盒(132元/个)、光盘(4.5元/片)出售,商店进行优惠酬宾活动。具体规则如下:顾客购买商品的总额超过100元,优惠5%;超过200元,优惠6%;超过300元,优惠7%;超过400元,优惠8%;超过500元,优惠10%。根据不同的购买量,计算应付货款

(2)实验代码:

#include

main()

{

float x,y,z,a;

int sum;

printf("请输入打印纸、墨盒、光盘的数量:\n");

scanf("%f,%f,%f",&x,&y,&z);

sum=((x*18+y*132+z*4.5)/100);

switch(sum)

{

case 0:a=(x*18+y*132+z*4.5);break;

case 1:a=0.95*(x*18+y*132+z*4.5);break;

case 2:a=0.94*(x*18+y*132+z*4.5);break;

case 3:a=0.93*(x*18+y*132+z*4.5);break;

case 4:a=0.92*(x*18+y*132+z*4.5);break;

case 5:a=0.90*(x*18+y*132+z*4.5);break;

default:a=0.90*(x*18+y*132+z*4.5);break;

}

printf("计算结果为:%.2f",a);

}

(3) 问题分析:购买商品的总额=打印纸数x18(元) +墨盒數x 132 (元)+光盘数x4.5(元),当sum≥100.元时,给予相应的优惠,将sum/100,使用switch语句判定优惠率。

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

(1)问题的简单描述:输入某一年、月的数值,输出该月的天数。

(2)实验代码:

#include

int main()

{

int year,month,days;

printf("please enter year and month:\n");

scanf("%d%d",&year,&month);

switch(month)

{

case 2:if((year%400==0)||((year%4==0)&&(year%100!=0)))

days=29;

else

days=28;

break;

case 1:days=31;break;

case 3:days=31;break;

case 4:days=30;break;

case 5:days=31;break;

case 6:days=30;break;

case 7:days=31;break;

case 8:days=31;break;

case 9:days=30;break;

case 10:days=31;break;

case 11:days=30;break;

case 12:days=31;break;

}

printf("%d年%d月有%d天",year,month,days);

return 0;

}

(3)问题分析:无

4.实验练习:4.3.4  switch case结构嵌套的运用

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

(2) 实验代码:

#include

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("数量?\n");

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 ("数量?\n");

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("数量?\n");

scanf ("&d",&n);

switch(y)

{

case 1:sum=3.6*n;break;

case 2:sum=n;break;

case 3:sum=2*n;break;

case 4:sum=3.6;break;

}

break;

}

printf("总计:%.2f元",sum);

}

(3) 问题分析:代码编写过程中中英文输入法切换容易出错

5.实验练习:4.3.5

问题的简单描述:找出代码错误的地方,并更改。

实验代码(1) :

#include

int main()

{

int num=20;

if(5

printf("%d in range (5,10)!\n",num);

else

printf("%d out of range (5,10)!\n",num);

}

实验代码(2):

#include

int main()

{

int num=20;

if(5

printf("%d in range (5,10)!\n",num);

else

printf("%d out of range (5,10)!\n",num);

}

问题分析:确定值是否在区间的判断不能直接直接5

6.实验练习:计算器

(1)问题描述:模拟一个简单计算器,进行两位数的加减乘除的计算

(2)具体分析:

( 1 )程序接收用户输人的算术表达式,表达式包含两个操作数、一个操作符,因此用float型声明两个变量,用于保存操作数的值,用char型声明- - 个变量,用于保存操作符( +.-.*./)。

(2)采用switch--case结构,根据操作符的种类不同,进行不同的运算。

(3)考虑除法的特殊情况,即当除数为零时,出现.异常。

(4)考虑用户输人非法操作符的情况。

流程图:

(3)实验代码:

#include

main()

{

float a,b;

char c;

printf("请输入两位数进行运算:");

scanf("%f%c%f",&a,&c,&b);

switch(c)

{

case'+':printf("%.2f+%.2f=%.2f\n",a,b,a+b);

break;

case'-':printf("%.2f-%.2f=%.2f\n",a,b,a-b);

break;

case'*':printf("%.2f*%.2f=%.2f\n",a,b,a*b);

break;

case'/':printf("%.2f/%.2f=%.2f\n",a,b,a/b);

break;

default:printf("输入有误");

}

}

实验小结:

在本次的实验过程中用到了if语句以及switch语句,通过实验过程去使用和掌握各种形式的if语句语法和使用方法,if语句中if和else的匹配关系和if语句的嵌套,switch语句的使用。if语句已经很熟练了,switch语句还是不怎么会用,尤其是break语句的用法及switch语句的嵌套。计算器没有进一步的扩展功能,只能进行简单的计算没有将循环运用到里面去,也不能进行差错的控制,没有解决0不能做被除数的问题,在以后学习过程中,多向那些代码写的好的人学习,从中找到新知识,得到进步,提高自己。

来源:https://www.cnblogs.com/c-p-666/p/12586548.html

c语言实验一的错误,C语言实验(三)相关推荐

  1. c语言scanf返回值错误,c语言scanf返回值

    1. scanf 函数是有返回值的,它的返回值可以分成三种情况 1) 正整数,表示正确输入参数的个数.例如执行 scanf("%d %d", &a, &b); 如果 ...

  2. c语言c2182是什么错误,C语言中一种更优雅的异常处理机制

    上一篇文章对C语言中的goto语句进行了较深入的阐述,实际上goto语句是面向过程与面向结构化程序语言中,进行异常处理编程的最原始的支持形式.后来为了更好地.更方便地支持异常处理编程机制,使得程序员在 ...

  3. c语言中格式符号错误,C语言中符号格式说明

    scanf 语法: #include int scanf( const char *format, ... ); scanf()函数根据由format(格式)指定的格式从stdin(标准输入)读取,并 ...

  4. C语言浮点型数据相加错误,C语言——整型和浮点型混合运算

    1. int和double混合运算 C语言int和double混合运算时,会自动将int类型的数据转换为double类型的数据,最后得到的结果也是double类型.如下例: double a=4.0/ ...

  5. c语言中数据精度发生错误,C语言Double类型数据保证精度有关问题

    C语言Double类型数据保证精度问题 我用手算算出的数据为-1.35323517,但是在C语言里面为了保证数据精度,VC++运行的结果为-1.35323517024517 ,按说应该在-1.3532 ...

  6. C语言会出现的错误,c语言,能运行但是偶尔会出现些错误,请高手们帮忙看看错在哪里啦...

    匿名用户 1级 2010-06-22 回答 printf("Now the test begin!Come on!\n"); printf("Press any key ...

  7. c语言中出现nan错误,c语言中浮点运算的inf和nan错误

    ============================================ 作者:yuanlulu http://blog.csdn.net/yuanlulu 版权没有,但是转载请保留此 ...

  8. c语言读取txt数字错误,C语言fread为什么会读取失败呢?

    fread是用来读取文件的函数,其形式为 size_t fread ( void *buffer, size_t size, size_t count, FILE *file) ; 功能为从文件指针f ...

  9. C语言关闭文件总是错误,C语言程序错误,不能正常读写文件,求解啊

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #define LEN sizeof(struct student) #include #include #include struct student ...

最新文章

  1. lingo变量无限制版本_java变量必看知识点
  2. bat脚本登陆ftp服务器
  3. 分离图片中的隐藏文件方法总结
  4. Java黑皮书课后题第7章:**7.34(对字符串中的字符排序)使用以下方法头编写一个方法,返回一个排序好的字符串。编写一个测试程序,提示用户输入一个字符串,显示排序好的字符串
  5. Linux shell的和||
  6. php安装编译时 configure: error: Cannot find OpenSSL's evp.h
  7. 自动驾驶——驾驶员反应时间的文献调研
  8. linux之dos2unix命令
  9. python和c混编_python与C、C++混编的四种方式(小结)
  10. 我的计算机无法远程连接桌面,远程桌面无法连接怎么办?windows 无法使用远程桌面连接的解决方法...
  11. 考研英语 - word-list-49
  12. chmod u+s权限理解
  13. 【论文导读】- E-LSTM-D: A Deep Learning Framework for Dynamic Network Link Prediction(动态网络链接预测)
  14. 社保,你不能做的N件事
  15. PAT_1027 (Basic Level) Practise (中文)
  16. 地产爆雷,洋河“出局”
  17. 大师们的投资之道(十三)
  18. 星之匙,石之阶,火之行:我们能从EMUI 10.1读出什么
  19. C++最精准的RGB-HSB(HSV)-HSL的色值转换
  20. Camera基本概念

热门文章

  1. 15.立体几何——几何为一个简单的立体系统,左右测验,视差的深度_3
  2. python 去重 字典_python按照list中字典的某key去重的示例代码
  3. bzoj1875 [SDOI2009]HH去散步 偏移+化边+矩乘
  4. 2017.9.13 序列维护 思考记录
  5. python千人成像_Python实现千图成像:从图片爬取到图片合成
  6. python做图片浏览器_python操作浏览器及截图小结
  7. python 文件管理_python 文件操作
  8. dbeaver 设置编码_初学者必须知道的idea设置
  9. Linux-ubuntu学习(第一天)
  10. 大数据售前的一点感悟