C语言实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验17.7.2(3)

1.实验代码与运行结果

#include

float input_score(float b[5],int i)

{int k;

printf("请输入第%d个学生的5门成绩:\n",i+1);

for(k=0;k<5;k++) scanf("%f",&b[k]);

return 0;

}

float average1(float b[5],int i)

{float s=0;int k;

for(k=0;k<5;k++) s+=b[k];

s=s/5;

printf("第%d个学生的平均分是:%9.2f\n",i+1,s);

return 0;

}

float average2(float c[10],int i)

{float s=0;

int k=0;

for(k=0;k<10;k++) s+=c[k];

s=s/10;

printf("第%d门学科的平均分是:%9.2f\n",i+1,s);

return 0;

}

void main()

{float a[10][5],c[10],max;

int i,j,p=0,q=0;

for(i=0;i<10;i++) input_score(a[i],i);

for(i=0;i<10;i++) average1(a[i],i);

for(i=0;i<5;i++)

{for(j=0;j<10;j++) c[j]=a[j][i];

average2(c,i);};

max=a[0][0];

for(i=0;i<10;i++)

{for(j=0;j<5;j++) {if(a[i][j]>=max) max=a[i][j],p=i,q=j;};};

printf("最大值是第%d个学生的第%d个课程:%9.2f\n",p+1,q+1,max); }

2.运行过程描述

本实验主要考察了函数与数组。因为一个二元数组可以看成若干个行数组。因此,实验中,我定义了input_score函数来输入成绩,average1函数来计算每个学生的平均分,average2函数来计算每个学科的平均分,它们都以数组名作为函数的一个参数,其中,input_score 和average1实参的数组名分别是二维数组对应行的一维数组名,也就是a[i],而average2,我是新定义了一个一维数组来存储每个学科的成绩,然后计算。

3.遇到的问题

实验中我认为循环语句的运用比较复杂,尤其是循环语句中赋值语句的位置(在循环里或循环外)比较重要,否则会出问题,一个可行的方法是添加几个输出语句,输出几个参数的值,就能在执行程序的时候发现问题所在。

实验17.8.2(3)

1.实验代码与运行结果

#include

int letter=0,space=0,number=0,other=0;

void main()

{

void zifu();

zifu();

printf("字母数:%d\n空格数:%d\n数字:%d\n其它字符:%d\n",letter,space,number,other);

}

void zifu()

{char c;

printf("请输入一串字符\n");

for(;(c=getchar())!='\n';)

{if ((c>='a'&&c<='z') ||(c>='A'&&c<='Z')) letter++;

else if (c==' ') space++;

else if (c>='0'&&c<='9') number++;

else other++;};

}

2.运行过程描述

先定义了全局变量letter,space,number,other,这样就能在主调函数和被调函数中直接使用。用zifu函数实现计数功能,然后在main函数上将结果打出。

实验17.8.2(4)

1.实验代码与运行结果

#include

long int gongyue(long int a,long int b,long int c)

{

if(a%b==0) return b;

else c=a,a=b,b=c%b,gongyue(a,b,0);

}

long int gongbei(long int a,long int b,long int f)

{

return (a*b/f);

}

void main()

{long int a,b,c,e;

printf("请输入两个正整数,并用逗号隔开:\n");

scanf("%d,%d",&a,&b);

if(a

printf("%d,%d\n",a,b);

printf("%d和%d的最大公约数是%d\n",a,b,gongyue(a,b,c));

printf("%d和%d的最小公倍数是%d\n",a,b,gongbei(a,b,gongyue(a,b,c))); }

#include

long int a,b,c,d;

long int gongyue(long int a,long int b)

{

if(a%b==0) c=b;

else c=a,a=b,b=c%b,gongyue(a,b);

return 0;

}

void gongbei()

{

d=a*b/c;

相关文档
最新文档