| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 19837 人关注过本帖
标题:编写程序1-3+5-7+9...-99+101,求高手指点。。。
只看楼主 加入收藏
zhonganyun0
Rank: 2
等 级:论坛游民
帖 子:31
专家分:18
注 册:2012-7-26
收藏
得分:2 

按你的想法编写的,,,a的表达式可得出所有累加项

#include<stdio.h>


void main()
{  
    int pow(int x,int y);
    int a,i;
int sum=0;



for (i=1;i<=101;i++)
{
    a=(1+2*(i-1))*pow(-1,i+1);


;
sum+=a;
}
printf("%d\n",sum);

}

int pow(int x,int y)
{
int z,q=1;
z=1;
while(0<q&&q<=y)

{
z*=x;
q++;
}
return z;
}


2012-07-26 01:27
netlin
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:24
帖 子:544
专家分:4308
注 册:2012-4-9
收藏
得分:0 

楼主的程序已经编得很好了,只是在循环体这儿漏了一对括号!

多犯几次,就有经验了!


做自己喜欢的事!
2012-07-26 11:49
jtx0329
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2012-07-26 12:47
lisjdf
Rank: 1
等 级:新手上路
帖 子:12
专家分:6
注 册:2012-7-26
收藏
得分:2 
首先楼主的程序出现的d%错误。应该写printf("s=%d\n",s);
其次for循环语句循环体是第一个;前或者第一个{}中的函数
而且像要做到奇数相加可以直接写成for(i=1;i<=101;i++,i++)
还有楼主没有用到数学公式不用加#include<math.h>
如果想设定一个判别正负函数可以写作
for(i=1,j=1;i<=101;i++,i++,j++)
{
   if(j%2)
    s+=-i;
   else if(j%2!=0)
    s+=i;           //j的作用可以看做标记奇偶


 }


针对楼主的格式问题正确格式的应该是
#include<stdio.h>

int main()
{
    int i,s,j;
        i=1;
        s=0;
    for(i=1,j=1;i<=101;i++,i++,j++)
{
   if(j%2)
    s+=-i;
   else if(j%2!=0)
    s+=i;         


 }

    printf("s=%d\n",s);
}
2012-07-26 15:00
q215236213
Rank: 4
等 级:业余侠客
威 望:1
帖 子:148
专家分:276
注 册:2012-7-24
收藏
得分:1 
#include <stdio.h>
int main(void)
{
    int i;
    int sum1 = 1;
   
    for (i = 3 ; i <= 101 ; i = i + 4)
        sum1 = sum1 - i ;
    printf("sum1 = %d\n", sum1);
    int j ;
    int sum2 = 1;
    for (j = 5; j <= 101; j = j + 4 )
        sum2 = sum2 + j ;
    printf("sum2 = %d\n", sum2);
   
    int sum = 0 ;
    sum = sum1 + sum2 - 1 ;
    printf("sum = %d\n", sum );
   
   
    return 0;
}
本人的笨方法
2012-07-26 15:37
血祭幻岚
Rank: 2
等 级:论坛游民
帖 子:29
专家分:72
注 册:2012-3-21
收藏
得分:1 
数列通项为(-1)^(n-1)*(2n-1),n=1
下为代码:
#include<stdio.h>
void main()
{
    int i,s,t=0;
        for(i=1;i<=51;i++)
        {
            if(i%2==0)
                s=-1;
            else
                s=1;
            t+=s*(2*i-1);
        }
        printf("%d",t);
        getchar();
}
2012-07-27 15:21
lin471306489
Rank: 4
等 级:业余侠客
帖 子:136
专家分:247
注 册:2011-8-16
收藏
得分:0 
for 加一个 if判断 ,当为偶数的时候-,其他+
2012-07-27 16:00
bei040549
Rank: 2
等 级:论坛游民
帖 子:6
专家分:13
注 册:2012-7-28
收藏
得分:0 
按照楼主原码这样修改一下就可以了
#include<stdio.h>
void main()
{
    int i,sum=0;
    for(i=1;i<=101;j+=2)
    {
        sum = -sum;
        sum = sum + i;
    }
    printf("the sum is: %d\n",sum);
}
2012-07-28 02:09
快速回复:编写程序1-3+5-7+9...-99+101,求高手指点。。。
数据加载中...
 
   



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

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