实验报告

  • 格式:doc
  • 大小:251.50 KB
  • 文档页数:7

实验目的

熟练地使用C编译软件编辑、编译、连接和运行程序

实验内容

实验1:用if语句写程序判断是否为闰年。

实验:2:用if语句输出分段函数

实验3:给一个不多于3位的正整数,要

 求出它是几位数;

 分别输出每一位数字

 按新逆序输出各位数字,例如原数为321,应输出123。

实验4:定义取最大值函数

实验5:通过修改已知函数的参数加深对函数参数的理解

实验6:分别用if语句和switch语句实现如下程序:

 从键盘输入学生的考试成绩,利用计算机将学生的成绩划分等级并输出。90-99为A级,80-89为B级,70-79为C级,60-69为D级,0-59为E级。

算法、流程图及主要符号说明

完整的程序清单

实验1

#include

#include

void main()

{

int a;

printf("请输入年份\n");

scanf("%d",&a);

if (a%400==0)

printf ("你输入的年份是闰年\n");

else if (a%4==0 && a%100!=0)

printf ("你输入的年份是闰年\n");

else

printf ("你输入的年份不是闰年\n");

}

实验2

#include

#include

void main()

{

double x,y;

printf("请输入x的值\n");

scanf("%lf",&x);

if (x<1)

printf("y=%lf",y=x);

else if (x>=10) printf("y=%lf",y=-3*x-11);

else

printf("y=%lf",y=2*x-1);

}

实验3

#include

#include

void main()

{

int x,m,n,h;

printf("请输入一个正整数\n");

scanf("%d",&x);

if (x>9)

printf("位数是2位\n");

else {printf("位数是1位\n");

}

m=(x/10);

n=(x%10);

printf("该数的十位是 %d,个位是 %d\n",m,n);

h=n*10+m;

printf("该数的逆序数 %d\n",h);

}

实验4

#include

#include

double tmax (double a,double b ,double c)

{

double tmax;

if (a > b)

tmax = a;

else

tmax = b;

if (c > tmax) tmax = c;

return tmax;

}

void main()

{

double x,y,z;

printf("请输入三个数\n");

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

printf("三者的最大值是 %.2f\n", tmax (x,y,z) );

}

实验5,

首先先把之前的程序清单写下

#include

#include

void c_area(double a,double b,double c,double d,double e)

{

double s=(a+b+c+d)/2.;

printf("a=%lf,b=%lf,c=%lf,d=%lf,e=%lf\n

c_area=%lf\n",a,b,c,d,e,sqrt((s-a)*(s-b)*(s-c)*(s-d)-a*b*c*d*cos(e/2*3.14/360)*cos(e/2*3.14/360)));

}

int main()

{

c_area(3,4,5,5,145);

return 0;

}

综合分析调试我遇到几个问题

一:输入数据类型错误导致无法运行。

二:输入的四边长不符合实际情况。

三:改进数据输入方式。

新的编程清单如下:

#include

#include

double c_area(double a,double b,double c,double d,double e)

{

double area;

double s=(a+b+c+d)/2.;

area=sqrt((s-a)*(s-b)*(s-c)*(s-d)-a*b*c*d*cos(e/2*3.14/360)*cos(e/2*3.14/360));

return area;

}

void main()

{

double a,b,c,d,e,s;

printf("请输入四边形的四条边和一个对角和\n");

scanf("a=%.2f,b=%.2f,c=%.2f,d=%.2f,e=%.2f\n c_area=%.2f\n",a,b,c,d,e);

if(a<=0 || b<=0 || c<=0 || d<=0 || e<=0 || e>=360)

printf("您输入的数据有问题\n");

else if ( a+b+c

else

printf("四边形的面积是 %.2f",c_area(a,b,c,d,e));

}

实验6

#include

#include

void main()

{

int x;

printf("请输入成绩\n");

scanf("%d",&x);

printf("通过if语句输出\n");

if (x>=90) printf("成绩为A\n");

else if (x>=80) printf("成绩为B\n");

else if (x>=70) printf("成绩为C\n");

else if (x>=60) printf("成绩为D\n");

else printf("成绩为E\n");

printf ("成绩通过switch语句输出\n");

int n;

n=x/10;

switch(n)

{

case 9 : printf("成绩为A\n");break;

case 8 : printf("成绩为B\n");break;

case 7 : printf("成绩为C\n");break;

case 6 : printf("成绩为D\n");break;

case 5 : case 4 : case 3 : case 2 : case 1 : case 0 : printf("成绩为E\n");

}

}

输入数据及运行结果

实验1

实验2

实验3

实验4

实验5

实验6

调试分析和体会

这次的编程主要以自己不断的摸索,不断的实践,终于将作业完成了。虽然时间较以前花的跟多(因为以前有他人指导),不过感觉自己通过这次编程懂的了很多,收获很大。