C语言:函数的应用实验报告

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

课程名称:结构化程序设计与C语言开课实验室:年月日

一、实验目的

用C语言编写和调试函数的程序。从而对函数的定义、调用、全局变量的灵活运用有比较深入的了解。

二、内容及结果

1、程序一素数函数

1)程序要求:写一个判断是否是素数的函数,在主函数输入一个整数,调用它后输出结果。2)代码:

#include

#include

int prime(int n)

{ int i,k;

k=sqrt(n);

for(i=2;i<=k;i++)

if(n%i==0) break;

if(i<=k)

return 0;

else

return 1;

}

int main()

{ int prime(int n);

int n;

printf("Please enter n:");

scanf("%d\n",&n);

if(prime(n)==1)

printf("%d is a prime number",int(n));

else

printf("%d is not a prime number",int(n)); }

3)运行截图:

2、程序二用递归方法求n阶勒让德多项式的值

1)程序要求:

递归公式为:

当n=0,=

)

(x

P n 1

当n=1, =

)

(x

P n x;

当n>=1, =

)

(x

P n((2n-1)x-P

n-1(x)-(n-1)P

n-2

)x))/n

2)代码:

#include

#include

int p(int n,int x);

void main()

{

int n,x;

scanf("%d",&x);

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

printf("p(%d,%d)=%d\n",n,x,p(n,x));

}

int p(int n,int x)

{

if(n==0)

return 1;

else

if(n==1)

return x;

else

return((2*n-1)*x-p(n-1,x)-(n-1)*p(n-2,x))/n; }

3)运行截图:

3、程序三成绩统计程序

1)程序要求:输入10个学生5门课的成绩,分别用函数实现以下功能:

计算每个学生的平均分;计算每门课的平均分;找出所有50个分数中最高的分数所对应的学生和课程;计算平均方差。

2)代码:

#include

float x1[10],x2[5];

float pp(float f[10][5]);

float cc(float y[10][5]);

void find(float z[10][5],float s[5],int t[5]);

float xx(float q);

int main()

{

char name[5][20],class1[5][20];

float score[10][5],o,k=0,max[5];

int a[2],i,j;

printf("请你输入名字:\n");

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

gets(name[i]);

printf("请你输入班级:\n");

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

gets(class1[j]);

printf("请你输入十个学生五门课的成绩:\n"); for(i=0;i<10;i++)

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

scanf("%f",&score[i][j]);

x1[i]=pp(score);

x2[j]=cc(score);

find(score,max,a);

o=xx(k);

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

{

puts(name[i]);

printf("%.3f\n",x1[i]);

}

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

{

puts(class1[j]);

printf("%.3f\n",x2[j]);

}

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

{

printf("%.3f \n",max[j]);

puts(name[a[j]]);

puts(class1[j]);

}

printf("o=%.3f\n",o);

return 0;

}

float pp(float f[10][5]) {

float sum;

int i,j;

for(i=0,sum=0;i<10;i++) {

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

sum=sum+f[i][j];

x1[i]=sum/2;

sum=0;

}

return 0;

}

float cc(float y[10][5]) {

float sum;

int i,j;

for(j=0,sum=0;j<5;j++) {

for(i=0;i<10;i++) sum=sum+y[i][j]; x2[j]=sum/2;

相关文档
最新文档