int i,j,si,sj; for(i=1;i<300;i++) {
si=divs(i);
for(j=1;j<300;j++) {
sj=divs(j);
if(si==j && i==sj && i!=j) printf(\ } } }
int divs(int n) {
int i,s=0;
for(i=1;i *9.编写以下函数:①输入职工的姓名和职工号;②按职工号由小到大排序,姓名顺序也随之调整;③输入一个职工号,找出该职工的姓名。在主函数中调用这些函数。 (本题应放在第9章,定义结构体数据类型,用一个结构体变量存储职工的姓名和职工号) #include char na[5]; int no; }; int main() { struct worker s[5]; struct worker t; int i,j,k; printf(\ for(i=0;i<5;i++) scanf(\ for(i=0;i<5;i++) printf(\ for(i=0;i<5;i++) //选择法排序 { k=i; for(j=i;j<5;j++) { if(s[j].no for(j=0;j<5;j++)t.na[j]=s[i].na[j];//元素s[i]与s[k]交换,成员na是字符串 t.no=s[i].no; for(j=0;j<5;j++)s[i].na[j]=s[k].na[j]; s[i].no=s[k].no; for(j=0;j<5;j++)s[k].na[j]=t.na[j]; s[k].no=t.no; } for(i=0;i<5;i++) printf(\} 10.设计程序完成下列计算。 已知: y?f(x,n), f(x?2.3,n)?f(x?3.2,n?3)2nx2x4nx其中:f(x,n)?1????(?1)(n?0) 2!4!(2n)!当x=5.6,n=7时,求y。 要求通过嵌套调用完成计算。 #include long fatc(int n) //求阶乘 { int i; long p=1; for(i=1;i<=n;i++) p=p*i; return p; } double f(double x,int n)//实现f(x,n)函数 { double sum=1,p=1; int i,s=1; for(i=2;i<=2*n;i+=2) { s=-s; p=p*x*x; sum=sum+s*p/fatc(i); } return sum; } int main() { double y,x=5.6; int n=7; y=f(x,n)/(f(x+2.3,n)+f(x-3.2,n+3)); printf(\ return 0; } 实验六 函数与编译预处理 2.程序填空 ⑴下面的函数多次求两数x,y之积。 #include int mul(int a,int b); //原程序没有该引用声明 int main() { int x,y,z; printf(\ scanf(\ while(x!=0) { z=mul(x,y); printf(\ printf(\ scanf(\ } return 0; } int mul(int a,int b) { int c; c=a*b; return c; } ⑵求 ?n!(函数mm用来求阶乘) 110#include long s=0,i,mm(int k); //mm(int k)为函数的引用声明 for(i=1;i<11;i++) s=s+mm(i); printf(\ return 0; } long mm(int k) { long t=1,j; for(j=1;j<=k;j++) t*=j; return t; } 3. 编程。 ⑴定义函数int f(int x)判断x是否为奇数,若是则函数返回1,否则返回0。 #include int y; if(x%2!=0) y=1; else y=0; return y; } int main() { int x; printf(\ scanf(\ if(f(x)) printf(\ else printf(\ return 0; } ⑵定义函数int f(int m,int n)求m.要求用函数递归调用的方法。 #include int y; if(n==0) y=1; n else y=m*f(m,n-1); return y; } int main() { int m,n; printf(\ scanf(\ printf(\ return 0; } ⑶定义函数int f(int n)求 ?i。要求用函数递归调用的方法。 1n#include int s; if(n==1) s=1; else s=n+f(n-1); return s; } int main() { int n; printf(\ scanf(\ printf(\\\n\ return 0; } ⑷定义函数int f(int a,int b)求a,b的最大公约数。 #include int r,g; r=a%b; if(r==0) g=b; else g=f(b,r);