C编程语言对我有帮助吗

C编程语言对我有帮助吗

我必须编写一个程序,打印以下表达式“ 1-2 + 3-4 + 5 + .... n。(奇数加起来,偶数减去)”,我写了这个确切的代码:

#include <stdio.h>
int main ()
{
    float c,n,i,s;
    c=getch ();
    printf ("\n Please write n:");
    scanf ("%f",&n);
    s=0.f;
    for (i=1;i<=n;i++)
    {
        s+=((2*i-1) -2*i );
    }
    printf("\n Sum =%.2f",s);
    getch ();
 }


当我编译它时,它没有显示任何错误。当我运行它时,每次我输入一个数字,例如5,得到的结果是-5,或者如果输入3,得到的结果是-3。我做错了什么?

编辑:我需要得到这种结果:例如,如果我放6,我必须做1-2 + 3-4 + 5-6 = -3。如果我放4,我必须做1-2 + 3-4 = -2,依此类推!

最佳答案

您的总和是错误的:

s+=((2*i-1) -2*i );


给出-1

你需要:

s+=i*(2*(i%2) - 1);


它将为所有偶数i赋予“-”,为所有奇数i赋予“ +”。

并且由于您只处理整数,所以i应该是int,以及您使用的所有其他变量:

#include <stdio.h>
int main ()
{
    int s = 0, c= 0, n = 0, i = 1;
    c = getch();
    printf ("\n Please write n:");
    scanf ("%d",&n);
    for (i=1; i<=n; i++)
    {
        s+=i*(2*(i%2) - 1);
    }
    printf("\n Sum =%d",s);
    getch ();
 }


更简单的是,使用一些简单的数学运算就可以得到:

if(n%2 == 0){
    s = -n/2;
}
else{
    s = n - n/2;
}

关于c - C编程语言对我有帮助吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16142024/

10-10 18:23