c语言程序题。编写程序计算调和级数的前N项和。要求结果是一个准确的分数A/B形式。

H=1/1+1/2+1/3+……+1/n


#include <stdio.h>

long u, v;

void addrat(int, int);

void lowterm();

int main()

{

    int n, nterm;

    printf("请输入项数:");

    scanf("%d", &n);

    if (n<=0)

        printf("输入错误!\n");

    else if(n==1)

        printf("1/1\n");

    else

    {

        u = 1;

        v = 1;

        for (nterm=2; nterm<=n; nterm++)

        {

            addrat(1, nterm);

            lowterm();

            printf("%d/%d\n", u, v);

        }

    }

    return 0;

}

void addrat(int a, int b)

{

    u = u*b + a*v;

    v *= b;

}

void lowterm()

{

    long numcopy, dencopy, remainder;

    numcopy = u;

    dencopy = v;

    while(dencopy!=0)

    {

        remainder = numcopy%dencopy;

        numcopy=dencopy;

        dencopy=remainder;

    }

    if(numcopy>1)

    {

        u /= numcopy;

        v /= numcopy;

    }

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-26
这个嘛,随便找一下都出来了,没工夫编

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网