c语言项目实验作业5答案,《C语言程序设计》综合实验1~5习题参考答案

//综合实验1 问题:设计程序:若a,b为1对亲密数,则a的因子和等于b,b的因子和等于a, 且a不等于b。

//如:220、284是1对亲密数,284、220也是一对亲密数。在6~5000内找出所有的亲密数对,并将每对

//亲密数对用语句fprintf(p,"%6d,%6d\n",a,b)写入到当前目录下新建文件design.dat中。

#include

void main()

{

FILE *p;

int a,b,c,k;

int f[5001];//存放6~5000之间各数的因子和

p=fopen("design1.dat","w");

//在这里添加代码 for(a=6;a<=5000;a++)

{

c=0;

for(k=1;k<=a/2;k++)

{

if(a%k==0)

c+=k;

}

f[a]=c;

}

for(a=6;a<=5000;a++)

{

for(b=7;b<=4999;b++)

{

if((f[a]==b)&&((f[b]==a))&&(a!=b))

fprintf(p,"%6d,%6d\n",a,b);

}

}

fclose(p);

}

//from 郑慧婕

#include

void main()

{

FILE *p;

int a,b,c,k;

p=fopen("design1z.dat","w");

a=6;

while(a<=5000)

{

c=0;

for(k=1;k<=a/2;k++)

if(a%k==0)

c+=k;

b=c;

c=0; for(k=1;k<=b/2;k++)

if(b%k==0)

c+=k;

if((c==a)&&(b!=a))

fprintf(p,"%6d,%6d\n",a,b);

a++;

}

fclose (p);

}

//综合实验2 问题:设计程序:编制函数JSValue(long

m)用于判断m是否是回文数。如果是,则函数返回1,反之返回0。

//主函数调用函数JSValue(long m),寻找并输出11至999之间的数m,

它满足m、m*m、m*m*m均为回文数,最后把找

//到的数写入到当前目录下新建文件Design2.dat中。说明:所谓的回文数是指各位数字左右对称,例如121、676、94249

//等。满足上述条件的数如m=11, m^2=121, m^3=1331皆为回文数。

#include

#include

#include

int JSValue(long m)

{

//在这里添加代码

int i,j,dm,a[100];//a-数组,从低位到高位保存m各数位上的数字

i=0;

while(m>0)

{

dm=m%10;

a[i]=dm;

i++;

m/=10;

}

for(j=0;j

{

if(a[j]!=a[i-1])

return

0;

}

return 1;

}

void main()

{

//在这里添加代码

FILE *p;

int n;

p=fopen("design2.dat","w");

for(n=11;n<=999;n++)

{

if(JSValue(n)&&JSValue(n*n)&&JSValue(n*n*n))

fprintf(p,"%6d\n",n);

} fclose(p);

}

//综合实验3

问题:设计程序:在数组x的10个数中求平均值v,找出与v相差最小的数组元素并将其以格式“%.5f”写到

//当前目录下新建文件design3.dat中

#include

#include

void main()

{

FILE *p;

int i,k=0;

float

x[10]={7.23,-1.5,5.24,2.1,-12.45,6.3,-5,3.2,-0.7,9.81},d,v=0;

float dmin;

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

v+=x[i];

v=v/10;

d=fabs(x[0]-v); //在这里添加代码

dmin=fabs(x[0]-v);

p=fopen("design3.dat","w");

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

{

if(fabs(x[i]-v)

{

d=fabs(x[i]-v);

k=i;

dmin=fabs(x[i]-v);

} }

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

{

if(fabs(fabs(x[i]-v)-dmin)<=1.0e-9)

{

fprintf(p,"%.5f\n",x[i]);

} } fclose(p);

}

//综合实验4

问题:设计程序:编写函数f(x,y),计算z的值并返回,其中z=f(x,y)=(3.14*x-y)/(x+y),函数类型为float。编写主函数,

//若x、y取值为区间[1,6]的整数,调用函数f(x,y),找出使z取最小值的x1、y1,并将x1、y1以格式"%d,%d"

写入到当前目录

//下新建文件design4.dat中

#include

void main()

{ FILE *p;

float f(float x,float y),min;

int x,y,x1,y1;

//在这里添加代码 p=fopen("design4.dat","w"); x1=1; y1=1; min=f(x1,y1);

for(x=1;x<=6;x++)

{for(y=1;y<=6;y++)

{

if(f(x,y)

{

x1=x; y1=y; min=f(x1,y1);

} }

}

fprintf(p,"%d,%d\n",x1,y1);

fclose(p);

}

float f(float u,float v)

{//在这里添加代码 float fv; fv=(3.14*u-v)/(u+v);

return fv;

}

//综合实验5 问题:利用公式π/4≈1-1/3+1/5-1/7+...

...公式计算π的近似值,直到某一项的绝对值小于1e-6为止。

//(π/4的结果不包含此项)将计算结果以格式“%.6f”写入到当前目录下新建文件design5.dat中。

#include

#include

void main()

{

FILE *fp;

float n=1,t=1,pi=0;

int i;

//在这里添加代码

fp=fopen("design5.dat","w");

while(fabs(1.0/(2.0*n-1.0))>1e-6)

{

pi+=4.0*t/(2.0*n-1.0);

n++;

t=-t;

}

fprintf(fp,"%.6f\n",pi);

fclose(fp);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值