c语言实验报告.docx
《c语言实验报告.docx》由会员分享,可在线阅读,更多相关《c语言实验报告.docx(11页珍藏版)》请在冰豆网上搜索。
c语言实验报告
实验报告
课程名称:
C语言程序设计教程
实验项目名称:
实验七数组___________
班级与班级代码:
信息管理与信息系统1班11251101113
实验室名称(或课室):
SS-304__________
专业:
信息管理与信息系统_
任课教师:
张军____________________
学号:
11251101113__________
姓名:
冯启珊_______________
实验日期:
2011年12月16日__________
广东商学院教务处制
姓名冯启珊实验报告成绩
评语:
指导教师(签名)
年月日
说明:
指导教师评分后,实验报告交院(系)办公室保存。
正文
实验报告要求与排版字号:
1.实验报告按实验项目填写,每个学生做完实验必须填写
2.实验报告可参照如下内容格式写作:
实验目的、实验原理、实验设备、结果预测、实验步骤、实验结果、实验分析、结论。
3.实验报告排版打印统一用A4(21X29.7cm)格式。
4.标题用小二号黑体加粗,正文用四号宋体。
行距为固定值20磅。
5.页面上边距2.54cm,下边距2.54cm,左边距3cm,右边距2.2mm;
6.实验报告页码从正文页面起计算。
页码字号,选用小四号粗黑体并居中。
一、实验目的
通过做关于数组的十一个实验,实现:
1、熟练掌握一维数组、二维数组的定义、赋值、输入、输出方法。
2、熟练掌握字符数组和字符串函数的应用。
3、熟练掌握一维数组以及一维数组元素的存储关系。
4、熟练掌握一维数组和二维数组的使用以及在函数中的传递。
5、通过做试验实践掌握和数组有关的算法。
二、实验原理
数组是指具有形同类型的数据组成的序列,为有序集合。
通过一维数组、二维数组、字符数组和字符串函数的应用,结合前面所学的循环语句等,可将以前复杂的程序简单化,简单而方便地设计程序完成相应的功能。
三、实验设备
C++软件
四、实验内容、实验结果、结果分析
第1题:
输入并运行程序
main()
{inti,a[5],b[5],c[5];/*变量说明,数组说明*/
a[0]=2,a[1]=6,a[2]=4,a[3]=8,a[4]=9;
b[0]=2,b[1]=7,b[2]=9,b[3]=5,b[4]=3;
for(i=0;i<=4;i++)
{c[i]=a[i]*b[i];
printf("c[%d]=%d\n",i,c[i]);
}
运行结果为:
c[0]=4
c[1]=42
c[2]=36
c[3]=40
c[4]=27
结果分析:
定义三个数组a[5],b[5],c[5],分别给数组a和b赋值,数组c各元素的值由c[i]=a[i]*b[i]求得。
第2题:
{intsum,i;
inta[]={5,8,4,6,4,3,8,2,4,5,6};/*数组元素初始化*/
sum=0;
for(i=0;i<=10;i++)
sum+=a[i];/*求数组元素之和*/
printf("sum=%d\n",sum);
运行结果:
sum=55
程序实现简单地给一维数组赋值并求全部元素之和。
值得注意的是:
对全部元素赋初值时,可不制定数组长度;数组下标为变量,可用循环简化程序。
第3题:
程序实现:
从键盘输入5个数,输出最大、最小元素的值以及它们的下标。
将程序补充完整并上机试调。
#include
{inti,j,k,max,min;
inta[5];
for(i=0;i<5;i++)
scanf("%d",&a[i]);
max=min=a[0];
j=k=0;
{if(max{max=a[i];j=i;}elseif(min>a[i]){min=a[i];k=i;}}printf("max:a[%d]=%d,min:a[%d]=%d\n",j,max,k,min);}测试数据:12345运行结果:Max:a[4]=5,min:a[0]=1结果分析:从程序不难看出,一开始给max和min赋值为0,然后让数组中每个元素与max和min比较大小,通过“打擂台”的方式测试出数值中的最大值和最小值。第4题:输入并运行以下程序,分析程序运行的结果。main(){inti,j;inta[3][2]={12,34,24,11,45,20};intb[3][2]={11,23,34,13,10,64};intc[3][2];for(i=0;i<=2;i++)/*三行*/for(j=0;j<=1;j++)/*二列*/c[i][j]=a[i][j]+b[i][j];for(i=0;i<=2;i++){for(j=0;j<=1;j++)printf("%d+%d=%d",a[i][j],b[i][j],c[i][j]);printf("\n");}}运行结果:12+11=2334+23=5724+34=5811+13=2445+10=5520+64=84结果分析:以上程序实现两个3行2列的矩阵相加。 第5题:以下程序实现:从键盘输入12个整形数,组成一个3行4列的二维数组并输出。将程序补充完整并上机试调。main(){inta[3][4];inti,j;for(i=0;i<3;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);printf("Theresultis:\n");for(i=0;i<3;i++){for(j=0;j<4;j++)printf("%5d",a[i][j]);printf("\n");}}运行结果:Theresultis:123456789101112结果分析:程序实现简单的二维数组的输入和输出,应注意从键盘输入的12个整数要以空格、Enter键或Tab键分开。第6题:输入并运行以下程序。 main(){chara[7]="Foxpro";printf("%s\n");printf("%c%c%c\n",a[0],a[1],a[2]);}运行结果:Fox结果分析:用“%s”格式输出指定地址开始的字符串,用“%c”格式输出数组元素的字符。 第7题:输入并运行以下程序。main(){inti;chara[][8]={"SQL","Foxpro","Unix","ASP"};for(i=0;i<=3;i++)printf("%s\n",a[i]);}运行结果:SQLFoxproUnixASP结果分析:“chara[][8]={"SQL","Foxpro","Unix","ASP"};”定义了一个二维数组。a[i]是第i个字符串的串首地址。因此,字符串输出时用“printf("%s\n",a[i]);”。第8题:输入并运行以下程序,分析程序的运行结果。main(){inta[5]={1,2,3,4,5};pr(a);for(i=0;i<5;i++)printf("%5d",a[i]);}pr(p)intp[];{inti;for(i=0;i<5;i++)p[i]=p[i]*p[i];}把以上程序输入并编译,编译错误,出现“'pr'undefined”和‘i’为undeclaredidentifier的提示,经试调,把程序改为:#includeinti;pr(p)intp[];{for(i=0;i<5;i++)p[i]=p[i]*p[i];}main(){inta[5]={1,2,3,4,5};pr(a);for(i=0;i<5;i++)printf("%5d",a[i]);}结果:1491625结果分析:当形参作数组时,对应的实参作数组名,传递的是数组的首地址,此时形参和实参共享同一段内存单元,形参数组改变会影响实参数组元素的改变。第9题:编写程序:从键盘输入一串整数保存到数组中,调用函数antitone()将数组反序输出。自定义函数voidantitone(inta[],intn)实现将数组中的n个数据按逆序存放。#include#include//包含数组初始化函数的头文件#defineM100voidantitone(inta[],intn){inti,j;intk;i=0;j=n-1;while(i{k=a[i];a[i]=a[j];a[j]=k;i++;j--;}}main(){intarray[100];intn,i,m;printf("请输入要输入整数的个数:");scanf("%d",&n);memset(array,0,sizeof(array));//数组初始化语句printf("请输入整数:");for(i=0;iscanf("%d",&array[i]);antitone(array,n);for(m=0;m{printf("%d\n",array[m]);}}运行结果:请输入要输入整数的个数:3请输入整数:123321结果分析:在本程序中,自定义函数实现讲数组中n个数据按逆序存放,而后只需先输入整数个数,再输入对应多个整数即可实现题目要求。第10题:已知某数列的前两项为2和3,其后每一项为其前两项之积。分别用函数和数组编程实现:从键盘输入一个整数x,判断并输出x最接近数列的第几项?#include#includevoidF(inta[],intn){inti;a[0]=2;a[1]=3;for(i=2;i{a[i]=a[i-1]*a[i-2];}}main(){inta[100],x,k1,k2;inti;F(a,100);printf("inputx:");scanf("%d",&x);i=0;for(;x>a[i];i++);k1=abs(x-a[i-1]);k2=abs(x-a[i]);if(k1>k2)printf("x最接近第%d项\n",i+1);elseprintf("x最接近第%d项\n",i);return0;}运行结果:Inputx:5X最接近第3项结果分析:程序先自定义一个F函数,实现数列的有序排列,而后通过输入的数x与数列中数求差,差越小,说明x越接近数列的某个数。第11题:分别用函数和数组实现,输入10个学生5门课的成绩并完成如下功能:(1)求每个学生的平均分(2)求每门课程的平均分(3)找出最高分数所对应的学生(学号)和课程(4)分别统计5门课程都高于90分的学生人数#includefun(){inti,j,d[10][5],max=0,sum=0,b[2];for(i=0;i<10;i++)for(j=0;j<5;j++)scanf("%d",&d[i][j]);printf("AverageStudents:\n");for(i=0;i<10;i++){for(j=0;j<5;j++){if(d[i][j]>max)max=d[i][j];sum+=d[i][j];}printf("NO.%d%d\n",i,sum/5);sum=0;}printf("AverageSubjects:\n");for(j=0;j<5;j++){for(i=0;i<10;i++){sum+=d[i][j];if(d[i][j]==max){b[0]=i;b[1]=j;}}printf("SB.%d%d\n",j,sum/10);sum=0;}printf("Highest:NO.%dGRADE.%d",b[0],b[1]);}main(){fun();;return0;} 五、实验中出现的问题及解决方法1、在输入程序时,少写了半边引号,调试时发现存在错误,找到了错误并加以改正。2、在输入程序中,在scanf语句中在输入量前忘记加“&”,调试发现错误,并改正。六、结论在本次实验中,通过对11个上机题的练习,对于数组的定义、引用和初始化以及数组作函数参数有更深刻的认识,同时巩固了对函数定义及声明和循环语句的运用。同时,通过自己设计程序和对程序进行调试,清晰了编程的思路,减少了错误了发生。
{max=a[i];j=i;}
elseif(min>a[i])
{min=a[i];k=i;}
printf("max:
a[%d]=%d,min:
a[%d]=%d\n",j,max,k,min);
测试数据:
12345
Max:
a[4]=5,min:
a[0]=1
从程序不难看出,一开始给max和min赋值为0,然后让数组中每个元素与max和min比较大小,通过“打擂台”的方式测试出数值中的最大值和最小值。
第4题:
输入并运行以下程序,分析程序运行的结果。
{inti,j;
inta[3][2]={12,34,24,11,45,20};
intb[3][2]={11,23,34,13,10,64};
intc[3][2];
for(i=0;i<=2;i++)/*三行*/
for(j=0;j<=1;j++)/*二列*/
c[i][j]=a[i][j]+b[i][j];
for(i=0;i<=2;i++)
{for(j=0;j<=1;j++)
printf("%d+%d=%d",a[i][j],b[i][j],c[i][j]);
printf("\n");
12+11=2334+23=57
24+34=5811+13=24
45+10=5520+64=84
以上程序实现两个3行2列的矩阵相加。
第5题:
以下程序实现:
从键盘输入12个整形数,组成一个3行4列的二维数组并输出。
{inta[3][4];
inti,j;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%d",&a[i][j]);
printf("Theresultis:
\n");
{for(j=0;j<4;j++)
printf("%5d",a[i][j]);
Theresultis:
1234
5678
9101112
程序实现简单的二维数组的输入和输出,应注意从键盘输入的12个整数要以空格、Enter键或Tab键分开。
第6题:
输入并运行以下程序。
{chara[7]="Foxpro";
printf("%s\n");
printf("%c%c%c\n",a[0],a[1],a[2]);
Fox
用“%s”格式输出指定地址开始的字符串,用“%c”格式输出数组元素的字符。
第7题:
{inti;
chara[][8]={"SQL","Foxpro","Unix","ASP"};
for(i=0;i<=3;i++)
printf("%s\n",a[i]);
SQL
Foxpro
Unix
ASP
“chara[][8]={"SQL","Foxpro","Unix","ASP"};
”定义了一个二维数组。
a[i]是第i个字符串的串首地址。
因此,字符串输出时用“printf("%s\n",a[i]);”。
第8题:
输入并运行以下程序,分析程序的运行结果。
{inta[5]={1,2,3,4,5};
pr(a);
for(i=0;i<5;i++)printf("%5d",a[i]);
pr(p)
intp[];
for(i=0;i<5;i++)p[i]=p[i]*p[i];
把以上程序输入并编译,编译错误,出现“'pr'undefined”和‘i’为undeclaredidentifier的提示,经试调,把程序改为:
inti;
{
结果:
1491625
当形参作数组时,对应的实参作数组名,传递的是数组的首地址,此时形参和实参共享同一段内存单元,形参数组改变会影响实参数组元素的改变。
第9题:
编写程序:
从键盘输入一串整数保存到数组中,调用函数antitone()将数组反序输出。
自定义函数voidantitone(inta[],intn)实现将数组中的n个数据按逆序存放。
#include//包含数组初始化函数的头文件
#defineM100
voidantitone(inta[],intn)
intk;
i=0;
j=n-1;
while(i{k=a[i];a[i]=a[j];a[j]=k;i++;j--;}}main(){intarray[100];intn,i,m;printf("请输入要输入整数的个数:");scanf("%d",&n);memset(array,0,sizeof(array));//数组初始化语句printf("请输入整数:");for(i=0;iscanf("%d",&array[i]);antitone(array,n);for(m=0;m{printf("%d\n",array[m]);}}运行结果:请输入要输入整数的个数:3请输入整数:123321结果分析:在本程序中,自定义函数实现讲数组中n个数据按逆序存放,而后只需先输入整数个数,再输入对应多个整数即可实现题目要求。第10题:已知某数列的前两项为2和3,其后每一项为其前两项之积。分别用函数和数组编程实现:从键盘输入一个整数x,判断并输出x最接近数列的第几项?#include#includevoidF(inta[],intn){inti;a[0]=2;a[1]=3;for(i=2;i{a[i]=a[i-1]*a[i-2];}}main(){inta[100],x,k1,k2;inti;F(a,100);printf("inputx:");scanf("%d",&x);i=0;for(;x>a[i];i++);k1=abs(x-a[i-1]);k2=abs(x-a[i]);if(k1>k2)printf("x最接近第%d项\n",i+1);elseprintf("x最接近第%d项\n",i);return0;}运行结果:Inputx:5X最接近第3项结果分析:程序先自定义一个F函数,实现数列的有序排列,而后通过输入的数x与数列中数求差,差越小,说明x越接近数列的某个数。第11题:分别用函数和数组实现,输入10个学生5门课的成绩并完成如下功能:(1)求每个学生的平均分(2)求每门课程的平均分(3)找出最高分数所对应的学生(学号)和课程(4)分别统计5门课程都高于90分的学生人数#includefun(){inti,j,d[10][5],max=0,sum=0,b[2];for(i=0;i<10;i++)for(j=0;j<5;j++)scanf("%d",&d[i][j]);printf("AverageStudents:\n");for(i=0;i<10;i++){for(j=0;j<5;j++){if(d[i][j]>max)max=d[i][j];sum+=d[i][j];}printf("NO.%d%d\n",i,sum/5);sum=0;}printf("AverageSubjects:\n");for(j=0;j<5;j++){for(i=0;i<10;i++){sum+=d[i][j];if(d[i][j]==max){b[0]=i;b[1]=j;}}printf("SB.%d%d\n",j,sum/10);sum=0;}printf("Highest:NO.%dGRADE.%d",b[0],b[1]);}main(){fun();;return0;} 五、实验中出现的问题及解决方法1、在输入程序时,少写了半边引号,调试时发现存在错误,找到了错误并加以改正。2、在输入程序中,在scanf语句中在输入量前忘记加“&”,调试发现错误,并改正。六、结论在本次实验中,通过对11个上机题的练习,对于数组的定义、引用和初始化以及数组作函数参数有更深刻的认识,同时巩固了对函数定义及声明和循环语句的运用。同时,通过自己设计程序和对程序进行调试,清晰了编程的思路,减少了错误了发生。
k=a[i];
a[i]=a[j];
a[j]=k;
i++;
j--;
intarray[100];
intn,i,m;
printf("请输入要输入整数的个数:
");
scanf("%d",&n);
memset(array,0,sizeof(array));//数组初始化语句
printf("请输入整数:
for(i=0;iscanf("%d",&array[i]);antitone(array,n);for(m=0;m{printf("%d\n",array[m]);}}运行结果:请输入要输入整数的个数:3请输入整数:123321结果分析:在本程序中,自定义函数实现讲数组中n个数据按逆序存放,而后只需先输入整数个数,再输入对应多个整数即可实现题目要求。第10题:已知某数列的前两项为2和3,其后每一项为其前两项之积。分别用函数和数组编程实现:从键盘输入一个整数x,判断并输出x最接近数列的第几项?#include#includevoidF(inta[],intn){inti;a[0]=2;a[1]=3;for(i=2;i{a[i]=a[i-1]*a[i-2];}}main(){inta[100],x,k1,k2;inti;F(a,100);printf("inputx:");scanf("%d",&x);i=0;for(;x>a[i];i++);k1=abs(x-a[i-1]);k2=abs(x-a[i]);if(k1>k2)printf("x最接近第%d项\n",i+1);elseprintf("x最接近第%d项\n",i);return0;}运行结果:Inputx:5X最接近第3项结果分析:程序先自定义一个F函数,实现数列的有序排列,而后通过输入的数x与数列中数求差,差越小,说明x越接近数列的某个数。第11题:分别用函数和数组实现,输入10个学生5门课的成绩并完成如下功能:(1)求每个学生的平均分(2)求每门课程的平均分(3)找出最高分数所对应的学生(学号)和课程(4)分别统计5门课程都高于90分的学生人数#includefun(){inti,j,d[10][5],max=0,sum=0,b[2];for(i=0;i<10;i++)for(j=0;j<5;j++)scanf("%d",&d[i][j]);printf("AverageStudents:\n");for(i=0;i<10;i++){for(j=0;j<5;j++){if(d[i][j]>max)max=d[i][j];sum+=d[i][j];}printf("NO.%d%d\n",i,sum/5);sum=0;}printf("AverageSubjects:\n");for(j=0;j<5;j++){for(i=0;i<10;i++){sum+=d[i][j];if(d[i][j]==max){b[0]=i;b[1]=j;}}printf("SB.%d%d\n",j,sum/10);sum=0;}printf("Highest:NO.%dGRADE.%d",b[0],b[1]);}main(){fun();;return0;} 五、实验中出现的问题及解决方法1、在输入程序时,少写了半边引号,调试时发现存在错误,找到了错误并加以改正。2、在输入程序中,在scanf语句中在输入量前忘记加“&”,调试发现错误,并改正。六、结论在本次实验中,通过对11个上机题的练习,对于数组的定义、引用和初始化以及数组作函数参数有更深刻的认识,同时巩固了对函数定义及声明和循环语句的运用。同时,通过自己设计程序和对程序进行调试,清晰了编程的思路,减少了错误了发生。
scanf("%d",&array[i]);
antitone(array,n);
for(m=0;m{printf("%d\n",array[m]);}}运行结果:请输入要输入整数的个数:3请输入整数:123321结果分析:在本程序中,自定义函数实现讲数组中n个数据按逆序存放,而后只需先输入整数个数,再输入对应多个整数即可实现题目要求。第10题:已知某数列的前两项为2和3,其后每一项为其前两项之积。分别用函数和数组编程实现:从键盘输入一个整数x,判断并输出x最接近数列的第几项?#include#includevoidF(inta[],intn){inti;a[0]=2;a[1]=3;for(i=2;i{a[i]=a[i-1]*a[i-2];}}main(){inta[100],x,k1,k2;inti;F(a,100);printf("inputx:");scanf("%d",&x);i=0;for(;x>a[i];i++);k1=abs(x-a[i-1]);k2=abs(x-a[i]);if(k1>k2)printf("x最接近第%d项\n",i+1);elseprintf("x最接近第%d项\n",i);return0;}运行结果:Inputx:5X最接近第3项结果分析:程序先自定义一个F函数,实现数列的有序排列,而后通过输入的数x与数列中数求差,差越小,说明x越接近数列的某个数。第11题:分别用函数和数组实现,输入10个学生5门课的成绩并完成如下功能:(1)求每个学生的平均分(2)求每门课程的平均分(3)找出最高分数所对应的学生(学号)和课程(4)分别统计5门课程都高于90分的学生人数#includefun(){inti,j,d[10][5],max=0,sum=0,b[2];for(i=0;i<10;i++)for(j=0;j<5;j++)scanf("%d",&d[i][j]);printf("AverageStudents:\n");for(i=0;i<10;i++){for(j=0;j<5;j++){if(d[i][j]>max)max=d[i][j];sum+=d[i][j];}printf("NO.%d%d\n",i,sum/5);sum=0;}printf("AverageSubjects:\n");for(j=0;j<5;j++){for(i=0;i<10;i++){sum+=d[i][j];if(d[i][j]==max){b[0]=i;b[1]=j;}}printf("SB.%d%d\n",j,sum/10);sum=0;}printf("Highest:NO.%dGRADE.%d",b[0],b[1]);}main(){fun();;return0;} 五、实验中出现的问题及解决方法1、在输入程序时,少写了半边引号,调试时发现存在错误,找到了错误并加以改正。2、在输入程序中,在scanf语句中在输入量前忘记加“&”,调试发现错误,并改正。六、结论在本次实验中,通过对11个上机题的练习,对于数组的定义、引用和初始化以及数组作函数参数有更深刻的认识,同时巩固了对函数定义及声明和循环语句的运用。同时,通过自己设计程序和对程序进行调试,清晰了编程的思路,减少了错误了发生。
printf("%d\n",array[m]);
请输入要输入整数的个数:
3
请输入整数:
123
2
1
在本程序中,自定义函数实现讲数组中n个数据按逆序存放,而后只需先输入整数个数,再输入对应多个整数即可实现题目要求。
第10题:
已知某数列的前两项为2和3,其后每一项为其前两项之积。
分别用函数和数组编程实现:
从键盘输入一个整数x,判断并输出x最接近数列的第几项?
voidF(inta[],intn)
a[0]=2;
a[1]=3;
for(i=2;i{a[i]=a[i-1]*a[i-2];}}main(){inta[100],x,k1,k2;inti;F(a,100);printf("inputx:");scanf("%d",&x);i=0;for(;x>a[i];i++);k1=abs(x-a[i-1]);k2=abs(x-a[i]);if(k1>k2)printf("x最接近第%d项\n",i+1);elseprintf("x最接近第%d项\n",i);return0;}运行结果:Inputx:5X最接近第3项结果分析:程序先自定义一个F函数,实现数列的有序排列,而后通过输入的数x与数列中数求差,差越小,说明x越接近数列的某个数。第11题:分别用函数和数组实现,输入10个学生5门课的成绩并完成如下功能:(1)求每个学生的平均分(2)求每门课程的平均分(3)找出最高分数所对应的学生(学号)和课程(4)分别统计5门课程都高于90分的学生人数#includefun(){inti,j,d[10][5],max=0,sum=0,b[2];for(i=0;i<10;i++)for(j=0;j<5;j++)scanf("%d",&d[i][j]);printf("AverageStudents:\n");for(i=0;i<10;i++){for(j=0;j<5;j++){if(d[i][j]>max)max=d[i][j];sum+=d[i][j];}printf("NO.%d%d\n",i,sum/5);sum=0;}printf("AverageSubjects:\n");for(j=0;j<5;j++){for(i=0;i<10;i++){sum+=d[i][j];if(d[i][j]==max){b[0]=i;b[1]=j;}}printf("SB.%d%d\n",j,sum/10);sum=0;}printf("Highest:NO.%dGRADE.%d",b[0],b[1]);}main(){fun();;return0;} 五、实验中出现的问题及解决方法1、在输入程序时,少写了半边引号,调试时发现存在错误,找到了错误并加以改正。2、在输入程序中,在scanf语句中在输入量前忘记加“&”,调试发现错误,并改正。六、结论在本次实验中,通过对11个上机题的练习,对于数组的定义、引用和初始化以及数组作函数参数有更深刻的认识,同时巩固了对函数定义及声明和循环语句的运用。同时,通过自己设计程序和对程序进行调试,清晰了编程的思路,减少了错误了发生。
a[i]=a[i-1]*a[i-2];
inta[100],x,k1,k2;
F(a,100);
printf("inputx:
scanf("%d",&x);
for(;x>a[i];i++);
k1=abs(x-a[i-1]);
k2=abs(x-a[i]);
if(k1>k2)
printf("x最接近第%d项\n",i+1);
else
printf("x最接近第%d项\n",i);
return0;
Inputx:
5
X最接近第3项
程序先自定义一个F函数,实现数列的有序排列,而后通过输入的数x与数列中数求差,差越小,说明x越接近数列的某个数。
第11题:
分别用函数和数组实现,输入10个学生5门课的成绩并完成如下功能:
(1)求每个学生的平均分
(2)求每门课程的平均分(3)找出最高分数所对应的学生(学号)和课程(4)分别统计5门课程都高于90分的学生人数
fun()
{inti,j,d[10][5],max=0,sum=0,b[2];
for(i=0;i<10;i++)
for(j=0;j<5;j++)
scanf("%d",&d[i][j]);
printf("AverageStudents:
{for(j=0;j<5;j++)
{if(d[i][j]>max)
max=d[i][j];
sum+=d[i][j];
printf("NO.%d%d\n",i,sum/5);
printf("AverageSubjects:
{for(i=0;i<10;i++)
{sum+=d[i][j];
if(d[i][j]==max)
{b[0]=i;b[1]=j;}
printf("SB.%d%d\n",j,sum/10);
printf("Highest:
NO.%dGRADE.%d",b[0],b[1]);
{fun();;return0;}
五、实验中出现的问题及解决方法
1、在输入程序时,少写了半边引号,调试时发现存在错误,找到了错误并加以改正。
2、在输入程序中,在scanf语句中在输入量前忘记加“&”,调试发现错误,并改正。
六、结论
在本次实验中,通过对11个上机题的练习,对于数组的定义、引用和初始化以及数组作函数参数有更深刻的认识,同时巩固了对函数定义及声明和循环语句的运用。
同时,通过自己设计程序和对程序进行调试,清晰了编程的思路,减少了错误了发生。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1