C语言设计实验报告

C程序设计实验报告

  实验项目:简单算法& 分支结构实验      姓名:米思琪       实验地点:一教522       实验时间:2020.4.15

一、实验目的与要求

1、正确选择if语句和switch语句的选择结构
2、正确认识条件判断在程序中的需要
3、熟练掌握if语句和switch语句的语法结构
4、正确使用关系运算符和关系表达式
5、注意逻辑运算符及其优先次序

二、实验内容

1、实验练习:3.3.1

(1)问题的简单描述:设计正确的选择结构和流程,输入x值,输出对应y值。
(2)实验代码:
#include<stdio.h>
main()
{
	float x,y;
	printf("please input x:\n");
	scanf("%f",&x);
	if(x>=1)
	   if(x>=10)
	      y=3*x-1;
	   else
	      y=2*x-1;
	else
	   y=x;
	printf("y的值为%.2f\n",y);
}
(3)问题分析:由于if语句后加了分号,导致代码错误,经多次检查改正。

2、实验练习:3.3.2

(1)问题的简单描述:运用算法流程计算鸡兔同笼问题。
(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",x,y);
	 } 
	 else
	 printf("输入错误!\n");
}
(3)问题分析:运算符出现错误,取余算数忘记,经多次检查改正。

3、实验练习:3.3.3

(1)问题的简单描述:四个圆塔,高度均为10m,输入任意一点的坐标,若该点坐标在任意一个圆塔内,则输出圆塔的高度;若该点不在圆塔内,则输出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-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));
    d1=sqrt((x-x4)*(x-x4)+(y-y4)*(y-y4));
    if(d1>1&&d2>1&&d3>1&&d4>1)
    {
	h=0;
    printf("该塔的高度为%d\n",h);
    }
    else
	{
		printf("该塔的高度为%d\n",h);
	}
}
(3)问题分析:没有数学公式头文件,导致运行错误,经多次检查已改正。

4、实验练习:4.3.1

(1)问题的简单描述:定义长、宽、高三个数值,判断箱子形状。
(2)实验代码:
#include<stdio.h>
int main()
{
	int l,w,h;
	printf("请输入箱子的长、宽、高:\n");
	scanf("%d%d%d",&l,&w,&h);
	if(1==w&&1==h&&w==h)
	  printf("该箱子是正方体。");
	else
	  printf("该箱子是长方体。");
	return 0;
}
(3)问题分析:if语句后不加分号,条件语句是两个“==”号

5、实验练习:4.3.2

(1)问题的简单描述:商店有打印纸(18元/本)、墨盒(132元/个)、光盘(4.5元/片)出售,商店促销:顾客购买商品总额超过100元,优惠%5;超过200元,优惠%6;超过300元,优惠%7;超过400元,优惠%8;超过500元,优惠%10。根据不同的购买量,计算应付货款。
(2)实验代码:
#include<stdio.h>
main()
{
	int a,b,c;
	float w,z;
	printf("请输入打印纸、墨盒、光盘的数量:");
	scanf("%d,%d,%d,&a,&b,&c");
	printf("打印纸%d张,墨盒%d个,光盘%d个\n",a,b,c);
	if(w>100)
	z=0.95*w;
	else if(w>200)
	z= 0.94*w;
	else if(w>300)
	z=0.93*w;
	else if(w>400)
	z=0.92*w;
	else if(w>500)
printf("应付款:%.2f");

}
(3)问题分析:对switch语句不熟练,写代码用了很长时间。

6、实验练习:4.3.3

(1)问题的简单描述:输入某一年、月的数值,输出该月的天数。
(2)实验代码:
#include<stdio.h>
main()
{
	int year,month,days;
	printf("请输入年份和月份:");
	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);
}
(3)问题分析:代码逻辑不清晰,请教同学后改正。

三、实验小结

收获:

(1)if语句和switch语句的使用;
(2)熟悉流程图的制作;
(3)熟悉结构化算法的性质及结构;
(4)程序的核心就是算法,程序对算法有一个最基本的要求,即算法必须是可以终结的过程,也就是说算法的执行最终能够结束。

不足:

(1)设计流程和输入代码时不够细心,导致不必要的错误;
(2)对运算符的优先级与运算不熟练,操作时浪费大量时间;
(3)不爱思考问题,喜欢求助别人。
对卢雨晴的建议:整理报告很认真,但字体太小,不利于观察,希望下次改正。

四、预习第四章

posted @ 2021-04-18 16:29  飒廲  阅读(258)  评论(0编辑  收藏  举报