访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容
#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int n,i,total1=0,total2=0,sum=0; printf("n请输入整数n值:"); scanf("%d",&n); for(i=1;i<=n;i++) //你的for loop没有设定完整 { if((i+1)%2==0) //如果你用i++ 会影响到接下来的运算 total1+=i; else total2+=i; } sum=total1-total2; //奇数的系数是正的 偶数的系数是负的 应该要用奇数和-偶数和 printf("1-2+3-4+5-6+-.....+-n值为:%d n",sum); system("PAUSE"); return EXIT_SUCCESS; }
int main(int argc, char *argv[]) { int n,i,sum=0; int sw=1; //sw作为正负控制用 printf("n请输入整数n值:"); scanf("%d",&n); for(i=1;i<=n;i++) { sum=sum+i*sw; sw*=-1; } printf("1-2+3-4+5-6+-.....+-n值为:%d n",sum); system("PAUSE"); return EXIT_SUCCESS; }
下面是引用drizztkuo于2007-01-13 00:14发表的 : 抱歉!有点答非所问!如果仅是要得出1-2+3-4+5-6.....+-N数列的答案,程式可以改以另外一种写法吧?!例如sum = 0 ;if (0==(n % 2)).......
int sum = 0 ; if (n%2) return(sum=(n+1)/2); else return(sum=-n/2);
#include <stdio.h> #include <stdlib.h> long fn(long n) { if(n<=0) { printf("error: n must > 0"); exit(1); } if(0==n%2) return (n/2)*(-1); else return (n/2)*(-1)+n; } int main(void) { long int i,j; printf("Please input number "); scanf("%ld",&j); i=fn(j); printf("The sum is %ld ",i); return 0; }