第二次实验报告

C程序设计实验报告

姓名:杨怡程 实验地点:524教室 实验时间:4.15

一、实验目的与要求

  1. 掌握DEVC++的安装方法,并实现程序的编辑、编译、连接、运行。
  2. 通过运行简单的C语言程序,初步了解C语言的结构特点。
  3. 掌握C语言的基本类型及使用方法。
  4. 悉C语言运算符和表达式的正确使用方法。
  5. 熟练掌握Markdown的用法。

二、实验内容

  • 实验项目 3.3.1

代码:

#include<stdio.h>
main()
{
	float x,y;
	printf("请输入x的值:");
	scanf("%f",&x);
	if(x<1)
	printf("y的值为%.2f",y=x);
	else if (x<10)
	printf("y的值为%.2f",y=2*x-1);
	else printf("y的值为%.2f",y=3*x-1);
}

问题描述:本题无较大问题。

  • 实验项目 3.3.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",x,y); 
	 } 
	 else
	 printf("输出错误!\n"); 
}

问题描述:本题应注意应变量x,y的表达。

  • 实验项目 3.3.3

代码:

#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));
	d4=sqrt((x-x4)*(x-x4)+(y-y4)*(y-y4));
    switch(d1>1&&d2>1&&d3>1&&d4>1)
	{
			case 0 : printf("0");break;
	case 1 : printf("%d\n",h);
	}
 } 

问题描述: 还是会忘记math的用法 。

  • 实验项目 4.3.1

代码:

#include<stdio.h>
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;
 }

问题描述:本题无问题。

  • 实验项目 案例三

代码:

#include<stdio.h>
main()
{
	float x,y;
	char op;
	printf("输入表达式:");
	scanf("%f%c%f",&x,&op,&y);
	if(op=='+')
	printf("%.2f%c%.2f=%.3f\n",x,op,y,x+y);
	else if(op=='-')
	printf("%.2f%c%.2f=%.2f\n",x,op,y,x-y);
	else if(op=='*')
	printf("%.2f%c%.2f=%.2f\n",x,op,y,x*y);
	else if(op=='/'&&y!=0)
	printf("%.2f%c%.2f=%.2f\n",x,op,y,x/y);
	else printf("输入表达式错误!\n");
}

问题描述:对if-else嵌套不是很熟悉。

  • 实验项目 4.3.2

代码:

#include<stdio.h>
main()
{
	int x,y,z,a;//x为打印纸的数量,y为墨盒的数量,z为光盘的数量
	float sum;
	sum=0.0;
	printf("请输入打印纸、墨盒、光盘的数量:\n");
	scanf("%d%d%d",&x,&y,&z);
	sum=18*x+132*y+4.5*z;
	a=sum/100;
	switch(a)
	{
		case 1: sum=0.95*sum;break;
		case 2: sum=0.96*sum;break;
		case 3: sum=0.93*sum;break;
		case 4: sum=0.92*sum;break;
		default: sum=0.9*sum;break;
	 } 
	 printf("应付款%.2f",sum);
	 return 0;
}

问题描述:本题主要是开始时忘了需要先计算再用switch嵌套。

  • 实验项目 4.3.3

代码:

#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;
}

问题描述:本题基本无问题但与同学讨论时发现一个空格没打会导致直接跳出switch。

三、实验小结

1、
此次实验加深了我对if,switch语句结构的了解,并且能够独立书写代码,找出错误并通过调试的方法解决错误。

  • 数据类型的区分,数据类型的转换,比如强制转换。
  • 运算符的优先级的详细区分以及运算的结合方向。
  • 结构化算法的基本结构,描述其的自然语言,伪代码以及流程图。其中流程图的制作是重点。
  • if语句的结构,if-else语句的嵌套
  • switch语句结构以及switch语句和switch嵌套的简单使用。

四、预习

posted @ 2021-04-19 17:55  逆刃  阅读(67)  评论(0编辑  收藏  举报