for(i=0;i<10;i++) for(j=i+1;j<10;j++) { t=a[i][j]; a[i][j]=a[j][i]; a[j][i]=t; } }
88.求∏值,精度为10-5:∏/4≈1-1/3+1/5-1/7+…… #include
float a=1.0,b; int i;
for(i=1;1.0/(2*i+1)>0.00001;i++) {
if(i%2!=0) a-=1.0/(2*i+1); else
a+=1.0/(2*i+1); }
b=4.0*a;
printf(\的值为:%f\\n\}
89.用公式计算:e≈1+1/1!+1/2! …+1/n!,精度为10-6。 #include
float e=1.0;
for(i=1;fun(i)>0.00000001;i++) e+=fun(i); printf(\ }
float fun(int n) {
int i;
float term=1.0; for(i=1;i<=n;i++) term/=i; return term; }
90.有一分数序列
2/1,3/2,5/3,8/5,13/8,21/13 求该序列的前20项之和。 #include
float a[22], b[20],p=0.0; a[0]=1.0; a[1]=1.0; for(i=2;i<22;i++) a[i]=a[i-1]+a[i-2]; for(i=0;i<20;i++) b[i]=a[i+2]/a[i+1]; for(i=0;i<20;i++) p+=b[i]; printf(\}
91.编一个子函数GCD,求两个正整数的最大公约数,主程序输入n个自然数,调GCD,求出这n个数的最大公约数。 #include
int a[100],i,n,k;
printf(\请输入数组元素的个数:\\n\ scanf(\
printf(\请输入%d个正整数:\\n\ for(i=0;i printf(\输入的%d个正整数的最大公约数是:%d\\n\} int GCD(int x,int y) { int i,min,p,q,gcd; if(x<=y) min=x; else min=y; for(i=1;i<=min;i++) { p=x%i; q=y%i; if(p==0&&q==0) gcd=i; } return gcd; } 92.写函数求sin(x)的值。计算公式为: Sin(x)=X-X3/3!+X5/5!-X7/7!+ …+(-1)n-1X2n-1/(2n-1)!。 #include float x; printf(\请输入n,x值:\\n\ scanf(\ scanf(\ printf(\} float sin(int n,float x) { int i; float s=0.0; for(i=1;i<=n;i++) s+=fun(-1.0,i-1)*fun(x,2*i-1)*term(2*i-1); return s; } float fun(float x,int n) { int i; float p=1.0; for(i=0;i float term(int n) { int i; float q=1.0; for(i=1;i<=n;i++) q/=i; return q; } 93.编一函数使用冒泡法对若干个整数按从小到大的顺序排序,主函数中输入若干个整数到一个一维数组中,调用排序函数,将其排序,最后将原数组和排好序的数组输出。 #include int a[N],i,j,temp; printf(\请输入10个整数:\\n\ for(i=0;i printf(\原始数据为:\\n\ for(i=0;i for(j=0;j<=N-i-1;j++) if(a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } printf(\排序后的数据为:\\n\ for(i=0;i 94.求一个m行n列的二维数组中的这样一个原素;它在它所在的行为最大,在它所在的列为最小。 #include int i,j,k,a[N] ,max,maxj,flag; printf(\input matrix:\\n\ for(i=0;i { max=a[i][0]; maxj=0; for(j=0;j { max=a[i][j]; maxj=j; } flag=1; for(k=0;k { flag=0; continue; } if(flag) { printf(\