今天吾爱编程为大家分享一个C语言的经典案例编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n, 当输入n为奇数时,调用函数 1/1+1/3+...+1/n的程序写法,有需要的小伙伴可以参考一下:
1、程序需求:
编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n, 当输入n为奇数时,调用函数 1/1+1/3+...+1/n;
2、正常写法:
#include 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);
}
3、指针写法:
#include 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;
}
以上就是吾爱编程为大家介绍的关于编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n的全部内容了,希望对大家有所帮助,了解更多相关文章请关注吾爱编程网!