广州大学C程序设计III实验四报告.docx
《广州大学C程序设计III实验四报告.docx》由会员分享,可在线阅读,更多相关《广州大学C程序设计III实验四报告.docx(13页珍藏版)》请在冰豆网上搜索。
广州大学C程序设计III实验四报告
学院
机械与电气工程
年级、专业、班
电气145
姓名
沈伟坤
学号
1407300207
课程名称
C程序设计III
实验项目名称
数组与函数程序设计
广州大学学生实验报告
一、实验目的
(1)熟练掌握一维和二维数组的定义和数组元素的引用方法。
(2)学习一维和二维数组的基本算法。
二、实验设备
实验设备要求每个学生一台电脑,并需装有VC++6.0程序。
三、实验内容
(一)编写程序,输入10位同学成绩,并按从大到小的顺序排序(文件名:
ch04_1.cpp)
#include
intmain()
{
staticintx[11];
inti,a,trans;
printf("请输入10个同学的成绩:
\n");
for(i=1;i<=10;i++)scanf("%d",&x[i]);
for(i=1;i<=10;i++)
for(a=1;a<=10-i;a++)
if(x[a]>x[a+1])
{trans=x[a];x[a]=x[a+1];x[a+1]=trans;}
for(i=1;i<=10;i++)
printf("%d,",x[i]);
return0;
}
(二)先输入10个有序数据(从小到大),然后再输入一个数,并将此数按原序插入,最后输出新的数列。
(文件名:
ch04_2.cpp)
#include
intmain()
{
intx[10];
inti,n,a=1,b;
printf("请输入10个由小到大的整数:
\n");
for(i=0;i<10;i++)scanf("%d",&x[i]);
printf("请再输入一个数:
");
scanf("%d",&b);
for(i=0;i<10;i++)
{
if(x[i]>=b&&a==1)
{
printf("%d\n",b);
a=a-1;
}
printf("%d\n",x[i]);
}
return0;
}
(三)完成下列程序:
程序功能为:
输出指定行数的杨辉三角形(文件名:
ch04_3.cpp)
#include
voidmain(void)
{inta[50][50],i,j;
/*提示请输入杨辉三角形行数*/
/*用scanf()输入杨辉三角形行数*/
/*用循环计算杨辉三角形各个值*/
/*用printf()输出杨辉三角形*/
}
#include
intmain()
{
inti,n,a,z,x[50][50];
printf("请输入杨辉三角行数");
scanf("%d",&i);
for(z=0;z<50;z++)
x[z][0]=x[z][z]=1;
for(n=2;n<50;n++)
{
if(n>=i)break;
for(a=1;a}
for(n=0;n
{
for(z=1;z<=i-n;z++)printf("");
for(a=0;a<=n;a++)printf("%5d",x[n][a]);
printf("\n");
}
return0;
}
(四)编写程序,输入一个3*3矩阵各元素,并求3*3矩阵中主对角线各元素之和和次对角线各元素之和。
(文件名:
ch04_4.cpp)
#include
intmain()
{
intn,i,x[3][3];
printf("pleaseinput9numbers:
");
for(n=0;n<=2;n++)
for(i=0;i<=2;i++)
scanf("%d",&x[n][i]);
n=x[0][0]+x[1][1]+x[2][2];
i=x[0][2]+x[1][1]+x[2][0];
printf("rightsumis%d,leftsumis%d",n,i);
return0;
}
(五)编写程序,输出1~100之间所有素数,(要求编写判别素数的函数)(文件名:
ch04_5.cpp)
#include
intprime(intn)
{
inti;
for(i=2;i<=n-1;i++)
{
if(n%i==0){return0;break;}
}
}
intmain()
{
inta;
for(a=2;a<=100;a++)
if(prime(a)!
=0)printf("%d",a);
return0;
}
(六)编写程序,输入年月日,请计算从公元元年1月1日到输入的年月日一共经历了多少天(要求编写判断闰年函数和验证年月日的合法性函数)(文件名:
ch04_6.cpp)
#include
intleapyear(intn)
{
if(n%4==0&&n%100!
=0)return1;
if(n%400==0)return1;
elsereturn0;
}
intjudge(intyear,intmonth,intday)
{
inta=1,b=1,c=1;
intx[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
if(leapyear(year)==1)x[2]=29;
if(year<=0)a=0;
if(month<=0||month>=13)b=0;
if(day>x[month])c=0;
returna*b*c;
}
intmain()
{
intx[13]={0,31,28,31,30,31,30,31,31,30,31,30,31},i,n,days=0;
intyear,month,day;
printf("pleaseinputdate:
suchas1995.1.1\n");
scanf("%d.%d.%d",&year,&month,&day);
if(leapyear(year)==1)x[2]=29;
while
(1)
{
if(judge(year,month,day)==0)
{printf("datewrong,pleasetryagain\n");
scanf("%d.%d.%d",&year,&month,&day);}
if(judge(year,month,day)==1)break;
}
for(i=1;i{
if(leapyear(i)==1)n=366;
elsen=365;
days=days+n;
}
for(i=1;i{
days=days+x[month];
}
days=days+day;
printf("从公元元年至%d年%d月%d日共经历了%d天",year,month,day,days);
return0;
}
(七)
编写程序,已知图中3个三角形均为等边三角形,且小三角形的边长是大三角形边长的一半,从键盘输入大三角形边长,调用三角形面积函数,计算阴影部分面积。
(文件名:
ch04_7.cpp)
#include
#include
intmain()
{
floata,b,c,s,p;
inti=2;
while(i--)
{
printf("请输入等边三角形的边长");
scanf("%f",&a);
b=c=a;
putchar('\n');
s=(a+b+c)/2;
p=sqrt(s*(s-a)*(s-b)*(s-c));
printf("bigarea=%.2f\n",p);
printf("darkarea=%.2f\n",p/2);
}
return0;
}
(八)编写程序,输入整数n,输出高度为n的等边三角形。
(要求编写输出三角形的函数)(文件名:
ch04_8.cpp)
比如:
当n=5时的等边三角形如下:
*
***
*****
*******
**********
#include
intmain()
{
inti,n,h,a;
printf("pleaseinputh:
");
scanf("%d",&h);
for(i=0;i<=h;i++)
{for(n=1;n<=h-i;n++)
printf("");
for(a=0;a<=2*i;a++)
printf("*");
printf("\n");
}
}
四、实验过程及最终效果(完成的代码及屏幕截图)
实验代码:
实验结果:
五、实验结果分析和实验心得: