云梦编程网

当前位置:首页 > C语言 >

编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+..

作者:佚名 时间:2023-09-07 09:14:35 阅读:(41)

今天云梦编程为大家分享一个C语言的经典案例编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n, 当输入n为奇数时,调用函数 1/1+1/3+...+1/n的程序写法,有需要的小伙伴可以参考一下:

编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+..

1、程序分析:

(1)、先判断是奇数还是偶数 * 2 、分数分子都是一,偶数分母从 2 开始,奇数的分母从 1 开始,分母差值都为 2

(2)、分数分子都是一,偶数分母从 2 开始,奇数的分母从 1 开始,分母差值都为 2

2、正常写法:

#include <stdio.h>

int main() {
	float peven(),podd(),dcall();
	float sum;
	int n;
	while (1) {
		scanf("%d",&n);
		if(n>1)
		break;
	}
	if(n%2==0) {
		printf("Even=");
		sum=dcall(peven,n);
	} else {
		printf("Odd=");
		sum=dcall(podd,n);
	}
	printf("%f",sum);
}
float peven(int n) {
	float s;
	int i;
	s=1;
	for (i=2;i<=n;i+=2)
		s+=1/(float)i;
	return(s);
}
float podd(n)
int n; {
	float s;
	int i;
	s=0;
	for (i=1;i<=n;i+=2)
		s+=1/(float)i;
	return(s);
}
float dcall(fp,n)
float (*fp)();
int n; {
	float s;
	s=(*fp)(n);
	return(s);
}</stdio.h>

3、指针写法:

#include <stdio.h>

float pEven(int n)
{
	float sum = 0;
	for (float i = 2; i <= n; i += 2)
	{
		sum += 1 / i;
	}
	return sum;
}

float pOdd(int n)
{
	float sum = 0;
	for (float i = 1; i <= n; i += 2)
	{
		sum += 1 / i;
	}
	return sum;
}

float dcall(float (*fp)(int n), int n)
{
	float s = fp(n);
	return s;
}

int main()
{
	int n = 0;
	float sum = 0;
	while (1)
	{
		scanf("%d", &n);
		if (n < 1)
			break;
		else if ((n % 2) == 0)
		{
			printf("Even = ");
			sum = dcall(pEven, n);
		}
		else
		{
			printf("Odd = ");
			sum = dcall(pOdd, n);
		}
		printf("%f", sum);
	}
	system("pause");
	return 0;
}</stdio.h>


以上就是云梦编程为大家介绍的关于编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n的全部内容了,希望对大家有所帮助,了解更多相关文章请关注云梦编程网!

最新文章

热门文章