//综合实验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);
}