实验五 函数

/*计算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;

    }

}

  

posted @ 2013-10-21 08:54  墨墨萧萧  阅读(270)  评论(0编辑  收藏  举报