C语言:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+…+1/n,当输入n为奇数时,调用
C语言:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+…+1/n,当输入n为奇数时,调用函数1/1+1/3+…+1/n(利用指针函数)。#include<std...
C语言:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+…+1/n,当输入n为奇数时,调用函数1/1+1/3+…+1/n(利用指针函数)。
#include<stdio.h>
void main()
{........ 展开
#include<stdio.h>
void main()
{........ 展开
2个回答
展开全部
#include <stdio.h>
float sum1(int n);
float sum2(int n);
void main(){
int n;
scanf("%d",&n);
float (*sum)(int n);
if (n<1) {
printf("输入整数不在范围");
}
else if(n%2==1){
sum=sum1;
printf("%f",sum(n));
}
else if(n%2==0){
sum=sum2;
printf("%f",sum(n));
}
}
float sum1(int n){
float temp,sum;
for(int i=1;i<=n;i++){
if(i%2==1){
temp=1.0/float(i);
sum+=temp;
}
}
return sum;
}
float sum2(int n){
float temp,sum;
for(int i=1;i<=n;i++){
if(i%2==0){
temp=1.0/float(i);
sum+=temp;
}
}
return sum;
}
//需要自己调试一下,没有上机测试。
追问
void main前面两个float是什么意思? 为什么放在那? →_→ 老师没教过
追答
你是说前面那两个语句吧,提前声明函数体,相当于在头文件中声明,便于main()引用。
这个是比较基本的,也是有用的,老师应该教的。
可能是我说的不太准确,基本这么个意思。我是自学的,不是老师教的。
我那个函数可能写的不太高效,不过指针基本用法应该就是这个了。
展开全部
#include "stdio.h"
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(int n)
{
float s;
int i;
s=0;
for(i=1;i<=n;i+=2)
s+=1/(float)i;
return(s);
}
float dcall(float (*fp)(int n),int n)
{
float s;
s=fp(n);
return(s);
}
void main()
{
float sum;
int n;
printf("输入整数:");
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);
}
}
//编译通过了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询