一般写法
#include<stdio.h>
void even(int n)
{
int i;
float sum=0;
for(i=2;i<=n;i=i+2)
{
sum+=(float)1/i;
}
printf("%.2f",sum);
}
void odd(int n)
{
int i;
float sum=0;
for(i=1;i<=n;i=i+2)
{
sum+=(float)1/i;
}
printf("%.2f",sum);
}
int main()
{
int n;
scanf("%d",&n);
if(n%2==0)
even(n);
else
odd(n);
return 0;
}
指针写法
#include<stdio.h>
float even(int n)
{
int i;
float sum=0;
for(i=2;i<=n;i=i+2)
{
sum+=(float)1/i;
}
return sum;
}
float odd(int n)
{
int i;
float sum=0;
for(i=1;i<=n;i=i+2)
{
sum+=(float)1/i;
}
return sum;
}
int main()
{
int n;
float t;
float (*p)(int); //p是一个指向函数的指针变量
scanf("%d",&n);
if(n%2==0)
p=even;
else
p=odd;
t=(*p)(n); //note:写法
printf("%.2f",t);
return 0;
}
输入:6
输出:0.92