实验五 函数
/*计算1!+2!+3!+...+100!*/ #include<stdio.h> double fact(int n); //自定义函数声明,计算阶乘
int main(void) { int i; double sum; sum=0; for(i=1;i<=100;i++) sum=sum+fact(i); printf("1!+2!+3!+...+100!=%e\n",sum); return 0; } double fact(int n) { int i; double result; result=1; for(i=1;i<=n;i++) result=result*i; return result; }

//
输入m、n(m≥n≥0)后,计算表达式的值并输出。 要求将计算阶乘的运算编写作函数fact(n),函数返回值的类型为float。
#include<stdio.h> float fact(int n); int main() { int m,n; float x,y,z,result; printf("Enter m and n:"); scanf("%d%d",&m,&n); if(m<n||m<0||n<0) printf("It is wrong\n"); else if(m>=n>=0){ x=fact(m); y=fact(n); z=fact(m-n); result=x/(y*z); printf("result=%.2f\n",result); } return 0; } //计算阶乘 float fact(int n) { int i; float product; product=1; for(i=1;i<=n;i++) product=product*i; return product; }

// 输入两个正整数m和n(m<n),求从m到n之间(包括m和n)所有素数的和,要求定义并调用函数isprime(x)来判断x是否为素数
#include<stdio.h> #include<math.h> int isprime(int x); int main() { int m,n,x,sum; printf("Enter m and n(m<n):"); scanf("%d%d",&m,&n); sum=0; for(x=m;x<=n;x++){ if (isprime(x)!=0) sum=sum+x; } printf("sum=%d",sum); return 0; } //判断素数 int isprime(int x) { int i,n; if(x==1) return 0; n=sqrt(x); for(i=2;i<=n;i++){ if(x%i==0){ return 0; } else return 1; } }

//还款年限—月还款额表
#include<stdio.h>
double cal_power(double x,int n);
double cal_money(double loan,double rate,int month);
int main(void)
{
int year;
double rate,loan,moneymonth;
printf("输入本金和利率:");
scanf("%Lf%Lf",&loan,&rate);
for(year=5;year<=30;year++)
{
moneymonth=cal_money(loan,rate,year*12);
printf("year=%d,moneymonth=%.f\n",year,moneymonth);
}
return 0;
}
double cal_power(double x,int n)
{
int i;
double result=1;
for(i=1;i<=n;i++)
result=result*x;
return result;
}
double cal_money(double loan,double rate,int month)
{
double result=cal_power(1+rate,month);
result=loan*rate*result/(result-1);
return result;
}


//哥德巴赫猜想
#include<stdio.h>
#include<math.h>
int prime(int m);
int main()
{
int i,a,b,m;
for(i=6;i<=100;i=i+2) //满足条件开始循环,偶数每次加2
{
for(b=2;b<=i;b++){ //假设b为素数
a=i-b;
if(prime(a)&&prime(b)){ //都为素数则输出
printf("%d=%d+%d ",i,a,b);
printf("\t"); //水平制表
break;
}
}
}
return 0;
}
//判断素数
int prime(int m)
{
int x;
double n;
if(m==1)
return 0;
n=sqrt(m);
for(x=2;x<=n;x++){
if(m%x==0) //余数为0不是素数
return 0;
else
return 1;
}
}


浙公网安备 33010602011771号