标签:case 语句 %. break 实验 printf 第二次 实验报告
c语言程序设计实验报告
实验项目:练习并熟悉分支结构
姓名:谢垚
实验地点:一教514 实验时间:2021年4月15日8:30~11:50
一、实验目的及要求
1、了解并认识分支结构的语法
2、准确的做出几种常见分支结构
二、实验内容
1、实验练习:3.3.1
1、问题描述:设计程序,输入x值,输出满足函数关系的y值,并用c语言编写程序进行验证
2、实验代码:
#include<stdio.h>
main()
{
float x,y;
printf("请输入x的值:");
scanf("%f",&x);
if(x<1)
y=x;
else if(x<10)
y=2*x-1;
else
{
y=3*x-1;
}
printf("y的值为%.2f\n",y);
}
3、问题分析:
在c语言中乘法不可忽略不可写成y=3x-1.else与if的一一对应关系
2、实验练习:3.3.2
1、问题描述:用算法流程图描述求解鸡兔同笼问题的算法,用c语言程序表示出来
2、实验代码:
#include<stdio.h>
main()
{
int h,f,x,y;
printf("鸡兔总数,鸡兔脚总数:");
scanf("%d,%d",&h,&f);
if(x>0&&y>0)
{
x=(4*h-f)/2;
y=(f-2*h)/2;
printf("鸡有%d 兔有%d\n");
}
else
printf("输入错误!:\n");
}
3、问题分析:如何用鸡兔的头数和脚数来表示鸡和兔分别的数量,乘号不可忽略
3、实验练习:3.3.3
1、问题描述:输入任意一点坐标若在任意四个圆塔内,则输出圆塔的高度,否则输出0
2、实验代码:
#include<stdio.h>
#include<math.h>
main()
{
int h=10;
float x1=2,y1=2,x2=-2,y2=2,x3=2,y3=-2,x4=-2,y4=-2,x,y,d1,d2,d3,d4;
printf("请输入一个点(x,y):");
scanf("%f%f",&x,&y);
d1=sqrt((x-2)*(x-2)+(y-2)*(y-2)),d2=sqrt((x+2)*(x+2)+(y-2)*(y-2)),d3=sqrt((x-2)*(x-2)+(y+2)*(y+2)),d4=sqrt((x+2)*(x+2)+(y+2)*(y+2));
if(d1>1&&d2>1&&d3>1&&d4>1)
h=0;
printf("该塔的高度:%d",h);
}
3、问题分析:在c语言平方不可直接用^2表示,不可忽略*(重要的事情说三遍)
4、实验练习:4.3.1
1、问题描述:输入3个表示箱子长、宽、高的整数值,判断并输出该箱子是长方体还是正方体。
2、实验代码:
#include<stdio.h>
main()
{
int l,w,h;
printf("请输入箱子的长,宽,高:\n");
scanf("%d%d%d",&l,&w,&h);
if(l==w&&w==h&&h==l)
printf("该箱子是正方体。\n");
else
printf("该箱子是长方体。\n");
return 0;
}
3、问题分析:判断长,宽,高的大小不可用三个连等于来判断,需用关系语句和并用两个==来判断
5、实验练习:4.3.2
1、问题描述:编写程序实现如下功能:商店有打印纸(18元/本)、墨盒(132元/个)、光盘(4.5元/片)出售,商店进行优惠酬宾活动。具体规则如下:顾客购买商品的总额超过100元,优惠%5;超过200元,优惠%6;超过300元,优惠%7;超过400元,优惠%8;超过500元,优惠%10。根据不同的购买量,计算应付货款。
2、实验代码:
#include<stdio.h>
main()
{
float x,y,z,s;
int d;
printf("请输入打印纸,墨盘,光盘的数量:\n");
scanf("%f,%f,%f",&x,&y,&z);
s=18*x+132*y+4.5*z;
d=s/100;
switch(d)
{
case 0:printf("应付款数=%.2f\n",s);break;
case 1:printf("应付款数=%.2f\n",s*0.95);break;
case 2:printf("应付款数=%.2f\n",s*0.94);break;
case 3:printf("应付款数=%.2f\n",s*0.93);break;
case 4:printf("应付款数=%.2f\n",s*0.92);break;
case 5:printf("应付款数=%.2f\n",s*0.90);break;
default:printf("应付款数=%.2f\n",s*0.90);break;
}
return 0;
}
3、问题分析:default的表达式应和case5中的表达式相同,应用总价除于100的方法来判断打折情况
6、实验练习:4.3.3
1、问题描述:设计一种程序,输入某一年、月的数值,输出该月天数
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年%d月有%d天",year,month,days);
return 0;
}
3、问题分析:如何判断闰年,年份能被4整除但不能被100整除,或能被400整除。
1,3,5,7,8,10,12月在每年天数相同都是31天,4,6,9,11月在每年天数也相同都是30天,只需判断2月的天数即可设计出程序。
三、实验小结
1、通过本次实验学到并认识到了分支结构,学习到了流程图的绘制,对关系语句的应用及运算法则的使用。if语句中是否加大括号的不同不加大括号,只会认为其后第一个表达式为唯一的表达式。加了大括号,则括号内的内容为表达式。case后面的常量表达式只能是整型、字符型或枚举型常量的一种;各case语句表达式的值各不相同,只起到一个标号作用,用于引导程序找到对应入口。各个case语句并不是程序执行的终点,通常需要执行break语句来跳出switch分支语句;若某case语句的语句块被执行后,若其后没有break语句,则顺序执行其它case语句,直到遇到break语句或后面所有case语句全部执行完,再跳出switch分支语句。
2、建议熊远辉的页面简洁好看,但对问题的分析不够具体
四、预习第四章
标签:case,语句,%.,break,实验,printf,第二次,实验报告 来源: https://www.cnblogs.com/xieyaojiayou/p/14673792.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。