c语言1-1/2+1/3-1/4+1/5-1/6……请求出该多项式的前n项的和

如题所述

从题目看应先输入项数n(正整数),再用for循环求结果较方便;计数变量从1开始依次增1,奇数取其倒数为正、偶数取其倒数为负求各项之浮点和即可完成。代码如下:

#include "stdio.h"
int main(int argc,char *argv[]){
double s;
int i,n;
printf("Input n(int n>0)...\nn=");
if(scanf("%d",&n)!=1 || n<1){//限制输入的项数n是正整数
printf("Input error, exit...\n");
return 0;
}
for(s=0,i=1;i<=n;s += i&1 ? 1.0/i++ : -1.0/i++);//i从1开始求倒数,奇数时取正,否则取负求浮点和
printf("The result are %g\n",s);//输出结果
return 0;
}

试运行结果如下:

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-12-13
#include <stdio.h>
void main () {
    int n;
    int sum = 0;    //总和
    int fram = -1; //符号
    scanf(%d, n);
    for (int i=1; i<=n; i++) {
        fram = fram*(-1)
        sum = sum + fram*(1/i);
    }
    printf("%d", sum);
}

第2个回答  2014-12-13
#include <stdio.h>
int main()
{
    int i,n,fuhao=1;
    double sum=0;
    printf("input n: ");
    scanf("%d", &n );
    for(i=1;i<n;i++ )
    {
        sum += 1.0*fuhao/i ;
        fuhao=-fuhao;
    }
    printf("%g\n", sum );
    return 0;
}

本回答被网友采纳
第3个回答  2014-12-13
#include<stdio.h>
int main()
{
    int i,n,flag=1;
    float sum=0;
    scanf("%d",&n);
    for(i=1; i<=n; i++)
    {
        sum+=flag*1.0/i;
        flag=flag*(-1);
    }
    printf("%f\n",sum);
    return 0;
}

c语言1-1\/2+1\/3-1\/4+1\/5-1\/6……请求出该多项式的前n项的和
=1 || n<1){\/\/限制输入的项数n是正整数printf("Input error, exit...\\n");return 0;}for(s=0,i=1;i<=n;s += i&1 ? 1.0\/i++ : -1.0\/i++);\/\/i从1开始求倒数,奇数时取正,否则取负求浮点和printf("The result are %g\\n",s);\/\/输出结果return 0;}试运行结果如下:...

C语言编写函数求:1-1\/2+1\/3-1\/4+1\/5-1\/6+...1\/n的值怎么做?结果是什么...
1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp。2、在test.cpp文件中,输入C语言代码:。int n = 100;double s;for (int i = 1; i <= n; i++)if (i % 2 == 0)s -= 1.0 \/ i;else s += 1.0 \/ i;printf("%lf", s);3、编译器运行test.cpp文件,...

...项的和并输出结果并保留两位小数。S=1-1\/2+1\/3-1\/4+...
double s=0;for(i=1;i<=2;i++){s=s+1.0\/(t*i);t=-t;} printf("%f",s);}

1-1\/2+1\/3+…+1\/n用函数c语言
int main(){int i,n;float s=0;scanf("%d",&n);for(i=1;i<=n;i++)if(i%2)s+=1.0\/i;else s-=1.0\/i;printf("%f\\n",s);system("pause");return 0;}

C语言题目:求下列多项式的和,直到最后一项的绝对值小于10-5。 e=1...
这样写应该可以的:include<stdio.h> include<math.h> main(){ int i=1,x=1;float sum=1;while(abs(1.0\/x)>=1e-5){ x*=i;sum+=1.0\/x;i++;} printf("%f",sum);} 不过因为每一项都是正数,不一定非要用绝对值啊。不过我是按绝对值写的代码。你看下可以吗 ...

...Sn = 1 + 1\/1! + 1\/2! + 1\/3! + 1\/4! + ... + 1\/n!
给你个简单易懂的程序 include<stdio.h> void main(){ float sum=0,p=1,deno=1,t; \/*deno是分母的意思*\/ int n;scanf("%d",&n);while(p<=n){ deno=p*deno;t=1\/deno;sum+=t;p++;} 不懂的话,还可以问的啊 printf("sum=%f\\n",sum);} ...

c语言 求多项式 1+4+7+10+13+...前n项和 请问我编的代码该怎么改正呢...
第一个:第9行放在第8行前面。因为sum初始化是0,b初始化是第一项1。循环进去以后首先是把sum和当前的b叠加,然后才是让b加3。第二:第八行结尾少了一个分号。第三:条件循环里面的后面可以写成 a = a + 1,或者直接是 ++a。两种自增操作的区别是,++a计算a+1的值,把这个值返回,然后...

编写C语言程序计算一个多项式1+1\/1!+1\/2!...+1\/n!,并且要求误差不超过...
因为sum是double型,所以赋double型的数,故初始为double sum=1.00,d;c为整型,故1\/c仍为整型,达不到sum是double的要求,故c也得初始化为double,for条件里改为c*=b*1.00;跟着的语句改为sum+=1.00\/c;d=sum-1.00\/c;改完应该如愿了 ...

C语言编程:计算并输出下列多项式的值 F(m)=1+1\/(1!)+1\/(2!)+...+1...
include<stdio.h> main(){ int i,m;double h=1.0,sum=1.0,s;scanf("%d",&m);for(i=1;i<=m;i++){ s=(double)1\/i;h=h*s;if(i>1)sum=sum+h;} printf("%f\\n",sum);}

用C语言编程:输入两个多项式的各项系数和指数,编写程序求出他们的和...
while(data.cofficient != 0 && data.index != -1);}\/** * 合并同类项并去除系数为0的项 *\/void merge(Polynomial *head) {Polynomial *p;for(p = head->next; p->next; p = p->next)if(p->data.index == p->next->data.index) {p->data.cofficient += p->next->data....

相似回答