教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 实用文档 >

实验六_用函数实现模块化程序设计

来源:网络收集 时间:2025-09-16
导读: c 实验六 用函数实现模块化程序设计 【实验目的】 1. 函数编译程序的初步应用; 2. 多个小函数的同时应用; 3. 函数的递归调用; 4. 数组作函数的参数。 【实验内容】 实验一:最大公约数和最小公倍数的求解,源程序如下: #includestdio.h int f1(int x,int

c

实验六 用函数实现模块化程序设计

【实验目的】

1. 函数编译程序的初步应用;

2. 多个小函数的同时应用;

3. 函数的递归调用;

4. 数组作函数的参数。

【实验内容】

实验一:最大公约数和最小公倍数的求解,源程序如下: #include<stdio.h>

int f1(int x,int y)

{

if(x%y!=0) return f1(y,x%y); else return y;

}

int f2(int x,int y)

{

int r,i;

if(x<y) {r=x;x=y;y=r;} for(i=1;i<=y;i++)

if(i*x%y==0) {return (i*x);break;}

}

int main()

{

} int m,n; printf("请输入两个整数:"); scanf("%d%d",&m,&n); printf("%d与%d的最大公约数是:%d\n",m,n,f1(m,n)); printf("%d与%d的最小公倍数是:%d\n",m,n,f2(m,n)); return 0;

c

结论:结果正确。

实验二:方程根的求解,源程序如下:

#include<stdio.h>

#include<math.h>

double f1(float m,float n,float q)

{

double r,x1,x2; r=n*n-4*m*q; if(m==0) x1=-q/n,printf("方程有唯一实根:%lf\n",x1); else x1=(-n+sqrt(r))/(2*m),x2=(-n-sqrt(r))/(2*m),printf("方程有两个不等的实根:%lf\t%lf\n",x1,x2);

return 0;

}

double f2(float m,float n,float q)

{

double x1; if(n!=0) x1=-n/(2*m),printf("方程有两个相等实根:%lf\n",x1); else if(q==0) printf("方程的根为任意数\n");

else printf("方程无解\n");

return 0;

}

double f3(float m,float n,float q)

{

} double r,p,d; r=n*n-4*m*q; p=sqrt(-r)/(2*m),d=-n/(2*m); printf("方程有两个复根:"); printf("%lf+%lfi\t",d,p); printf("%lf-%lfi\n",d,p); return 0;

int main()

{

float r,a,b,c; printf("请输入方程的系数:"); scanf("%f%f%f",&a,&b,&c); r=b*b-4*a*c; if(r>0) f1(a,b,c); if(r==0) f2(a,b,c); if(r<0) f3(a,b,c); return 0;

c

}

结论:结果正确。

实验三:回文的判断和输出及统计其个数,源程序如下: #include<stdio.h>

#include<stdio.h>

#define N 100

c

char f(char c[])

{

}

int main()

{

} int i,j; char a[5][N]; printf("请输入五个字符串:\n"); for(i=0;i<5;i++) gets(a[i]); printf("其中回文是:\n"); for(i=0,j=0;i<5;i++) if(f(a[i])==1) { int i,j,n; for(i=0,n=0;c[i]!='\0';i++) n++; for(i=0,j=n-1;i<j;i++,j--) if(c[i]!=c[j]) return 0; return 1; printf("%s\n",a[i]); j++; } printf("回文有%d个\n",j); return 0;

结论:结果正确。

实验四:数组的降序输出,源程序如下: #include<stdio.h>

c

#define N 10

void sort(int a[],int n)

{

int i,j,t;

for(i=1;i<n;i++)

for(j=0;j<n-i;j++) if(a[j]<a[j+1]) t=a[j],a[j]=a[j+1],a[j+1]=t;

}

void main()

{

} int i,a[N]; printf("情输入整数:"); for(i=0;i<8;i++) scanf("%d",&a[i]); printf("\n"); sort(a,8); printf("数组降序为:"); for(i=0;i<8;i++) printf("%d ",a[i]); printf("\n");

结论:结果正确。

实验五:完数的输出及其累加和,源程序如下: #include<stdio.h>

int f(int n)

{

int i,k=0; for(i=1;i<n;i++) if(n%i==0) k+=i; if(n==k) return 1; else return 0;

}

int main()

{

int sum=0,n; printf("完数有:");

c

} for(n=2;n<=1000;n++) if(f(n)==1) { printf("%d ",n); sum+=n; } printf("\n所有完数的和为:sum=%d\n",sum); return 0;

结论:结果正确。

【实验小结】

1. 函数值回时,要看其中表示几条语句;

2. 注意“void”函数的结束;

3. 数组作函数的参数时,数组在函数中的表示。

…… 此处隐藏:413字,全部文档内容请下载后查看。喜欢就下载吧 ……
实验六_用函数实现模块化程序设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1804573.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)