RainbowMan 发表于 2020-4-7 20:17:04

请大家看看我的程序设计哪里出了问题


问题是:输入n(n<10)和a,计算下面数列前n项的和:

S=1/a+ (-2/a^2) +(3/a^3).......+(n*(-1)^(n-1)/a^n)


下面是我编写的代码,但是代入数值之后计算结果不对,我也找不出问题,请各位大佬帮我瞅瞅{:5_92:}
# include<stdio.h>
int main()
{
        int n,a,k;
        float S;
        k=1;
        scanf("%d %d",&a,&n);
        S=1/a;
        while(k!=n)
        {
                k=k+1;
                S=S+(k*((-1)^(k-1))/a^k);
        }
        printf("S=%f\n",S);
        return 0;
}

BngThea 发表于 2020-4-7 20:29:42

a为int,初始化S的时候要用 1.0/a

空条徐伦 发表于 2020-4-8 15:03:34

平方要用pow函数啊。。。。。。。

空条徐伦 发表于 2020-4-8 15:08:13

在c语言中"^"代表异或,而不是平方,平方要用到pow函数,这么说你懂了么。{:10_254:}

howzyao 发表于 2020-4-8 19:08:00

S=1/( (double)a );

只换个这,看看对不对?
页: [1]
查看完整版本: 请大家看看我的程序设计哪里出了问题