c语言的一些基本题型,编写fun函数实现基本功能
1.计算并输出给定整数的所有因子(不包括1与自身)之和。
#include<stdio.h>int fun(int n){int t=0,i;/*定义结果,循环变量。*/ for(i=2;i<n;i++)/*使用循环。*/ {if(n%i==0)/*如果余数为0,该数为因子。*/ t+=i;/*将因子相加。*/ } return t; /*将结果返回。*/ }
2.计算并输出3到n之间所有素数的平方根之和
#include<stdio.h>#include<math.h>double fun(int n){int m=3,i;double s=0;while(m<=n){for(i=3;i<=sqrt(m);i=i+2)if(m%i==0)break;if(i>sqrt(m)&&m!=1)s+=sqrt(m);m+=2;}return s;}
3.对变量n中的值保留2位小数,并对第三位进行四舍五入
#include<stdio.h>float fun(float n){n=n*100;n+=5;n=(long)n;n/=100;return n;}
判断整数是否是同构数,是返回1,否则返回0.
#include<stdio.h>int fun(int x){int xx=x*x;if(xx==x)return 1;if(xx%10==x)return 1;if(xx%100==x)return 1;elsereturn 0;}
5.求f数列中大于t的最小一个数,结果由函数返回。
F(0)=0 , F(1)=1,
F(n)=F(n-1)+ F(n-2)
#include<stdio.h>int fun(int t){int f1,f2,fn;fn=f1+f2;while(fn<=t){f1=f2;f2=fn;fn=f1+f2;}return fn;}
6.排列组合C(n,m)= n!/【m!(n-m)!】
#include<stdio.h>float fun(int m,int n){int i;double p=1.0;for(i=1;i<=m;i++)p=p*i;for(i=1;i<=n;i++)p=p/i;for(i=1;i<=(m-n);i++)p=p/i;return p;}
7.计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。
#include<stdio.h>double fun(int n){int i;double sum=0.0;for(i=1;i<=m;i++)if(i%5==0||i%9==0)sum+=1.0/i;return sum;}
8.将大于形参m且紧靠m的k个素数存入xx所指的数组中。
#include<stdio.h>void fun(int m, int k,int xx[]){int i,j,p=0;for(i=m+1;i>m;i++){for(j=2;j<i;j++){if(i%j==0)break;}if(j==i)xx[p++]=i;if(p>k)break;}}
9.求出数组dd中前k个数的小数部分的和,并返回此值。
#include<stdio.h>double Acc(int k,double dd[]){int i,j;double a,result=0;for(i=0;i<k;i++){j=dd[i];a=dd[i]-j;result+=a; }return result; }
10.计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和
#include<stdio.h>#include<math.h>double fun(double x[9]){int i;double avg=0.0,sum=0.0;for(i=0;i<8;i++){avg=(x[i]+x[i+1])/2;sum+=sqrt(avg); }return sum; }
11.删除一个字符串中指定位置的字符。其中,a存放原字符串,b存放删除后的字符串。
#include<stdio.h>void fun(char a[],char b[],int n){int i=0,j=0;while(a[i]){if(i!=n){b[j]=a[i];j++;}i++; } }