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

求算法和流程图。

第1个回答  推荐于2018-05-30
在WIN-TC DEV C++验证通过。
你这个不要分什么奇数偶数,直接一个循环做就可以了。
不知道你要什么流程图,这个不要分支,2个函数的意思都是从N到自减2直到为不为正数终止。
还有你要的是C语言的还是存储过程?还是什么其他什么语言?

#include<stdio.h>
#include<stdlib.h>

int main()
{
int n = 0;
double sum = 0.;
printf( "Please input a integer : " );
scanf( "%d", &n );
printf( "\r\n" );
while( n > 0 )
{
sum += 1./(double)n;
n -= 2;
}
printf( "sum = %lf\r\n", sum );
system( "pause" );
return 0;
}本回答被网友采纳
第2个回答  2011-01-06
我帮你写好咯,请参考下面代码:
CREATE OR REPLACE PROCEDURE kongxianji537(n NUMBER,b OUT NUMBER)
AS
a NUMBER(38);
BEGIN
a:= n;
IF MOD(a,2)=0 THEN
b := 0;
WHILE (a/2)>=1 LOOP
b:= b + 1/a;
a:=a-2;
END LOOP;
ELSIF MOD(a,2)=1 THEN
b := 1;
WHILE (a/2)>=1 LOOP
b:=b+ 1/a;
a:=a-2;
END LOOP;
END IF;
END;

希望对你有所帮助。
第3个回答  2011-01-05
#include <stdio.h>
int main(int argc, char *argv[])
{ int n;
float fj(int x);
float fo(int x);
scanf("%d",&n);
if(n%2==0)printf("%.2f",fo(n));else printf("%.2f",fj(n));
system("PAUSE");
return 0;
}

float fj(int x)
{int i;
float s;
s=0;
for(i=1;i<=x;i+=2)s=s+1.0/i ;
return(s);
}

float fo(int x)
{int i;
float s;
s=0;
for(i=2;i<=x;i+=2)s=s+1.0/i ;
return(s);
}本回答被网友采纳
相似回答