标签:case 语句 第三次 break switch 实验 printf 实验报告
C程序设计实验报告
实验项目:3.3.1 3.3.2 3.3.3 4.3.1 4.3.2 4.3.3
姓名:谢梅芳
实验地点:1教524
实验时间:2021.4.15
一、实验目的与要求
⑴ 掌握结构化程序的算法描述方法。
⑵了解C语言的基本语法要素,能熟练地将算法描述转化为C语言程序。
⑶熟练掌握C语言运算符的优先级、结合性、运算规则、运算对象类型等。
⑷学会正确地使用关系表达式和逻辑表达式。
⑸掌握各种形式的if语句语法和使用方法。注意if语句中if和else的匹配关系,以及if语句的嵌套。
⑹掌握switch语句的语法和使用方法,。注意在switch语句中break语句的用法及switch。
⑺用if语句、switch 语句解决简单的应用问题并上机实现。
二、实验内容
1、实验练习:3.3.1
1.1问题的简单描述:
⑴用算法流程图表示一函数的算法。输人x值,输出满足函数关系的y值,并用C语言编写程序进行检验。
1.2实验代码:需要使用MARKDOWN插入代码。
void main()
{
float x,y;
printf("请输入x的值:\n");
scanf("%f",&x);
if(x<1)
y=x;
else if(x>=1&&x<10)
y=2*x-1;
else
y=3*x-1;
printf("y的值为%.2f\n",y);
}
实验结果:
1.3问题分析:(重点分析在实验过程中出现的问题,及解决方法。)
⑴写else if后面的表达式时忘记写x>=1这个条件,从而使代码读取不正确;检查代码将其写全。
2、实验练习:3.3.2
2.1问题的简单描述:
⑴用算法流程图描述求解鸡兔同笼问题的算法:已知鸡兔的总头数为h ( head),总脚数为f(feet), 求鸡兔各有多少只?
2.2实验代码:
void main()
{
int h,f,x,y;
//h为鸡兔总数量,f为鸡兔脚总数,x为鸡的数量,y为兔的数量
printf("鸡兔总数,鸡兔脚总数:\n");
scanf("%d,%d",&h,&f);
if(h>0&&f>0)
{
x=(4*h-f)/2;
y=(f-2*h)/2;
printf("鸡有%d 兔有%d\n",x,y);
}
else
printf("输入错误!\n");
}
实验结果:
2.3问题分析:(重点分析在实验过程中出现的问题,及解决方法。)
3、实验练习:3.3.3
3.1问题的简单描述:
⑴有4个圆塔,圆心分别为(2,2)、(-2,2)、 (2,-2). .(-2,-2), 圆半径为1。这4个塔的高度均10m,塔以外无建筑物。现输人任意一点的坐标,若该点坐标在任意- -个圆塔内,则输出圆塔的高度;若该点不在圆塔内,则输出0。
3.2实验代码:
#include <math.h>
void 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):\n");
scanf("%f,%f",&x,&y);
d1=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1));
d2=sqrt((x-x2)*(x-x2)+(y-y2)*(y-y2));
d3=sqrt((x-x3)*(x-x3)+(y-y3)*(y-y3));
d4=sqrt((x-x4)*(x-x4)+(y-y4)*(y-y4));
if(d1>1&&d2>1&&d3>1&&d4>1)
h=0;
printf("该塔高度为%d",h);
}
实验结果:
3.3问题分析:(重点分析在实验过程中出现的问题,及解决方法。)
4、实验练习:4.3.1
4.1问题的简单描述:
⑴读入3个表示箱子长、宽、高的整数值,判断并输出该箱子是正方体还是长方体。j.
4.2实验代码:
#include <stdio.h>
int 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");
return 0;
}
实验结果:
4.3问题分析:(重点分析在实验过程中出现的问题,及解决方法。)
5、实验练习:4.3.2
5.1问题的简单描述:
⑴编写程序实现如下功能:商店有打印纸(18元本).墨盒(132元个)、光盘(4.5元片)出售,商店进行优惠酬宾活动。具体规则如下:顾客购买商品的总额超过100元,优惠5%;超过200元,优惠6%;超过300元,优惠7%;超过400元,优惠8%;超过500元,优惠10%。根据不同的购买量,计算应付货款。
5.2实验代码:
#include <stdio.h>
main()
{
float a,b,c,sum;
int d;
printf("请输入打印纸,墨盒,光盘的数量:");
scanf("%f%f%f",&a,&b,&c);
sum=a*18+b*132+c*4.5;
d=sum/100;
switch(d)
{ case 0:printf("应付款数:%.2f",sum);break;
case 1:printf("应付款数:%.2f",sum*0.95);break;
case 2:printf("应付款数:%.2f",sum*0.94);break;
case 3:printf("应付款数:%.2f",sum*0.93);break;
case 4:printf("应付款数:%.2f",sum*0.92);break;
case 5:printf("应付款数:%.2f",sum*0.90);break;
default:printf("应付款数:%.2f",sum*0.90);break; }
}
实验结果:
5.3问题分析:(重点分析在实验过程中出现的问题,及解决方法。)
⑴switch的使用不怎么明白使得一开始不知如何书写;仔细了解了其用法,并又定义了变量d,从而正确运行。
6、实验练习:4.3.3
6.1问题的简单描述:
⑴输入某一-年、月的数值,输出该月的天数。
6.2实验代码:
#include <stdio.h>
int 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);
}
实验结果:
6.3问题分析:(重点分析在实验过程中出现的问题,及解决方法。)
⑴判断是否为闰年的条件的书写有点迷糊;正确认识了逻辑与与逻辑非的关系与应用,从而完整写出。
⑵if语句的后面因粗心而加上了逗号;检查代码后将其改正。
三、实验小结(在本次实验中收获与不足)
1总结所学内容,归纳知识点。
收获:
⑴if的合理嵌套可以实现多分支选择,并且其通用性比switch更好,但使用时需注意else与if的配对,另外,过多的if..else嵌套会造成程序代码过长,降低程序的可读性。
⑵switch语句也是一种多分支选择语句,其可读性比if语句强。要注意在switch语句中正确地使用break语句,以使程序能正常地从switch分支中跳出,避免发生逻辑错误。
⑶对于switch语句,必须设置default标号,用于处理switch语句中表达式的值不在case标亏集的范围内的情况。由default标号来决定执行什么语句,可避免出现逻辑错误。
不足:
⑴对switch语句的用法不太明白,平时要多看书多练习。
2查看你的学习伙伴的作业,并对他的作业提出建议。
不足:实验报告没有着重表明更为重要的部分,建议多用些样式;
优点:问题分析到位,同时实验报告内容明了,易懂,写实验报告思路清晰。
四、预习第四章
归纳第四章知识要点并制作思维导图(记得PS上个人信息)
标签:case,语句,第三次,break,switch,实验,printf,实验报告 来源: https://www.cnblogs.com/meifang-1022/p/14664442.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。