实验五函数

//计算1!+2!+…+100!。要求定义和调用函数fact(n)计算n的阶乘。
#include<stdio.h>
double fact(int m);
int main()
{
	int i;
	double n;
	n=0;//赋初值为累加做准备
	for(i=1;i<=100;i++){
		n=n+fact(i);
	}
	printf("1!+2!...+100!=%e\n",n);//输出结果
	return 0;
}

double fact(int m)
{
	int i;
	double result;
	result=1;//赋初值
	for(i=1;i<=m;i++)
		result=result*i;
	
	return result;
}
	

  

//编制程序,输入m、n(m≥n≥0)后,计算下列表达式的值并输出。 要求将计算阶乘的运算编写作函数fact(n),函数返回值的类型为float
#include<stdio.h>
float fact(int n);
int main()
{
	int n,m;
	float s,x,y,z;//定义x,y,z来储存阶乘
	printf("enter n and m:");
	scanf("%d%d",&n,&m);
	x=fact(n);
	y=fact(m);
	z=fact(m-n);
	s=y/(x*z);
	printf("=%.2f\n",s);
	return 0;
}
float fact(int n)
{
	int i;
	float result;
	result=1;
	for(i=1;i<=n;i++)//计算阶乘
		result=result*i;
	return result;
}

  

//输入两个正整数m和n(m<n),求从m到n之间(包括m和n)所有素数的和,要求定义并调用函数isprime(x)来判断x是否为素数(素数是除1以外只能被自身整除的自然数)。
#include<stdio.h>
#include<math.h>
int isprime(int x);
int main()
{
	int m,n,x,s;//变量s放结果

	printf("enter m and n:");
	scanf("%d%d",&m,&n);
	s=0;

	for(x=m;x<=n;x++)
		if(isprime(x)!=0)
			s=s+x;//素数累加
		printf("=%d\n",s);
		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;
	}
	
}

  

//验证哥德巴赫猜想:任何一个大于6的偶数均可表示为两个素数之和。例如6 = 3 + 3,8 = 3 + 5,…,18 = 7 + 11。将6~100之间的每个偶数都表示成两个素数之和。函数prime(m)用于判断m是否为素数。素数就是只能被1和自身整除的正整数,1不是素数,2是素数。
#include<stdio.h>
#include<math.h>
int prime(int m);
int main()
{
	int m,x,y;
	printf("enter m:");
	scanf("%d",m);
	for(m=6;m<=100;m++)
		if(prime!=0)
			x=prime(m);
		y=prime(m);
		printf("这个数可以由%d,%d组成\n",x,y);
		return 0;
}
int prime(int m)
{
	int i,n;

	if(m==1)
		return 0;
	n=sqrt(m);
	for(i=2;i<=n;i++){
		if(m%i==0){
			return 0;
		}
		return 1;
	}
}

  

posted @ 2013-10-30 22:35  刘丽娜123456  阅读(144)  评论(0编辑  收藏  举报