标题:求奇数列或偶数列的前n项和
只看楼主
磐石【荆楚】
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-7-20
结帖率:100%
已结贴  问题点数:5 回复次数:5 
求奇数列或偶数列的前n项和
我用安阳工学院的Turbo c/c++ 2.0
编个求奇数列或偶数列的前n项和(如下),通过了编译,可就是结果就是不正确,请高手指点迷津!




/* Note:Your choice is C IDE */
#include "stdio.h"
main()
{
 int i,sum=0,n;
  printf("please input the first (n1) number: ");
  scanf("%d",&i);
  printf("please input n:");
  scanf("%d",&n);
 while(i%2==1 && i<=n)
   {
    sum=sum+i;
    i=i+2;
   }
 while(i%2==0 && i<=n)
   {
  sum=sum+i;
  i=i+2;
   }
  printf("sum=%d",sum);
  getch();
}
搜索更多相关主题的帖子: 偶数 奇数 
2009-07-20 21:59
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
得分:5 
回复 楼主 磐石【荆楚】
i 没赋值,所以所有的操作结果都有可能不正确。另外你循环两次,而 sum 值却只有一个,结果也应该是不正确的。

  把你的程序修改了一下,谨作参考:
程序代码:
#include<stdio.h>

int main(void)
{
    int sum_odd,sum_even;
    int n;
    
    while((scanf("%d",&n))==1)
    {
        sum_odd=0;
        sum_even=0;
        for(;n>0;--n)
        {
            if(n%2)
            {
                sum_odd+=n;
            }
            else
            {
                sum_even+=n;
            }
        }
        printf("odd=%d,even=%d\n",sum_odd,sum_even);
    }
    
    return 0;
}
2009-07-20 22:22
磐石【荆楚】
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2009-7-20
得分:0 
回复 楼主 磐石【荆楚】
#include "stdio.h"
main()
{
 int i,a,b,n,sum=0;
   printf("please input the first (n1) number: ");
  scanf("%d",&a);
    printf("please input n:");
  scanf("%d",&n);
 if(a==1)
   {
       
       for(i=1;i<=n;i++)
      {
        sum=sum+a;
        a=a+2;
       }
   }
 else if(a==2)
  {
   
       for(i=1;i<=n;i++)
      {
        sum=sum+a;
        a=a+2;
      }
  }
  else
   printf("your first input is error !\n");
  printf("sum=%d",sum);
  
  getch();   
}

我欲网络行天下!
2009-07-28 23:00
soler_z
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:28
专家分:130
注 册:2009-7-17
得分:0 
程序代码:
#include <stdio.h>

int main()
{
    int i,n,sum_odd=0,sum_even=0,t;
    printf("pls enter i(initial number) and n:");
    scanf("%d,%d",&i,&n);

        t=i;
        if(i%2==0)
        {for(;i<=2*n;i+=2)
             sum_even+=i;
            for(i=t+1;i<=2*n+t;i+=2)
            sum_odd+=i;
        }
        else
           { for(;i<=2*n-1;i+=2)
            sum_odd+=i;

            for(i=t+1;i<2*n+t+1;i+=2)
            sum_even+=i;
           }

    printf("\n偶数列和为%d,奇数列和为%d",sum_even,sum_odd);
    return 0;
}


[[it] 本帖最后由 soler_z 于 2009-7-29 00:32 编辑 [/it]]
2009-07-28 23:19
xiaogu149162
Rank: 2
等 级:论坛游民
帖 子:47
专家分:97
注 册:2009-7-16
得分:0 
现在我还不明白题目的意思:编个求奇数列或偶数列的前n项和
是不是这样理解的:输入5个数1 2 3 4 5 6,再输入5
就是求奇数和为1+3+5
      偶数和为2+4
如果是这样不用数组或指针,一次输入一串数字,怎么可以计算?
还是理解为输入1234567,再输入5
    求奇数和为1+3+5
      偶数和为2+4
不知可不可这两种理解?
2009-07-28 23:52
文武两边随
Rank: 2
等 级:论坛游民
帖 子:40
专家分:39
注 册:2009-7-23
得分:0 
main()
{
 int a[10];
 int i,j;
 int sum_i=0,sum_j=0;
 for(i=0;i<10;i++)
 {
  printf("a[%d]=",i);
  scanf("%d",&a[i]);
 }
 for(i=0;i<10;i+=2)
  sum_i=sum_i+a[i];
 for(j=1;j<10;j+=2)
 sum_j=sum_j+a[j];
 printf("sum_i=%d,sum_j=%d",sum_i,sum_j);
 printf("\n");



}
临时写了个应该是你要的吧?
2009-07-29 07:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-279946-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020012 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved