| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1694 人关注过本帖
标题:本人初学C语言 发现循环满繁琐 有一题不解
只看楼主 加入收藏
kissyoume
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2008-8-1
结帖率:0
收藏
 问题点数:0 回复次数:14 
本人初学C语言 发现循环满繁琐 有一题不解
计算1-3+5-7+...-99+101的值
我是这样编的 但是不对啊。。。
main()
{
  int a,b;
  b=0;
  while(fabs(a)<=101)
   {
    b=b+a;
    a=fabs(a)+2;
    a=-1*a;
  }
 printf("%d",b);
}
搜索更多相关主题的帖子: C语言 初学 
2008-08-01 23:46
elan1986
Rank: 6Rank: 6
等 级:贵宾
威 望:18
帖 子:458
专家分:407
注 册:2007-12-17
收藏
得分:0 
main()
{
    int a,b=1,i;
    for(i=2;i<=50;i++)
    {
        if(i%2==0)
            b=b+(-1*2*i);
        else
            b=b+2*i;
    }
    printf("%d",b)
}
我是这样的
但是不知道是否正确
可以参考
2008-08-02 00:41
zhaoyang84993
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-8-2
收藏
得分:0 
这个简单
把原式写成 (1+5+9+...+101)- (3+7+11+...+99)

#include <stdio.h>

int main()
{
int i, total1=0, total2=0, total;

for (i=1;i<=101;i+=4)
   total1+=i;
for (i=3;i<=99;i+=4)
   total2+=i;

total=total1-total2;

printf("%d\n", total);
return 0;
}

结果是51
2008-08-02 00:49
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
收藏
得分:0 
程序代码:
/*******************************************************************************

    计算1-3+5-7+...-99+101的值

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   我是这样写的,谨供参考。

*******************************************************************************/
#include<stdio.h>
int main(void)
{
        int i,j=0,k=1;
        for(i=1;i<102;i+=2,k++)
        {
                if(k%2)   j+=i;
                else      j-=i;
        }
        printf("%d\n",j);
        getch();
}
2008-08-02 01:14
彦宏
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2007-9-18
收藏
得分:0 
你最开始未对a初始化
2008-08-02 08:50
he20041987
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2007-9-10
收藏
得分:0 
本人学java的也试一下(语法上可能有错不要介意啊!)
计算1-3+5-7+...-99+101的值
main(){
 int a=1,b=1,t=0,sum=0;
 for(a=1;a<=101;a++){
   t=a*b;
   sum+=t;
   a+=2;
   b=-b;
 }
  printf("%d\n",sum);
}
2008-08-02 10:05
mark0289
Rank: 1
等 级:新手上路
帖 子:82
专家分:0
注 册:2006-4-5
收藏
得分:0 
#include <stdio.h>

int calc( int n )
{
    int sum=0;
    if ((n-1)%4==0)
        sum=(n+1)/2;
    else
        sum=-(n+1)/2;
    return sum;    
}

main()
{
    int n,sum;
    while(1)
    {
        scanf("%d",&n);
        if(n%2==0 || n<0)
            printf("Please input odd number!\n");
        else
            break;    
    }
    sum=calc(n);
    printf("sum=%d",sum);
    getch();
}

这是我写的,没有用循环,只是对这一串数字分析了下,找了规律

还请大家指教
2008-08-02 10:56
he20041987
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2007-9-10
收藏
得分:0 
[bo][un]mark0289[/un] 在 2008-8-2 10:56 的发言:[/bo]

#include

int calc( int n )
{
    int sum=0;
    if ((n-1)%4==0)
        sum=(n+1)/2;
    else
        sum=-(n+1)/2;
    return sum;    
}

main()
{
    int n,sum;
    while(1)
    {
        scanf("%d",&n);
        if(n%2==0 ||  ...


while(){} 不是循环?

[[it] 本帖最后由 he20041987 于 2008-8-2 13:40 编辑 [/it]]
2008-08-02 13:39
woshiyun
Rank: 1
等 级:新手上路
威 望:2
帖 子:348
专家分:0
注 册:2008-6-16
收藏
得分:0 
[bo][un]he20041987[/un] 在 2008-8-2 13:39 的发言:[/bo]



while(){} 不是循环?

你强!别人说的是算法没有循环。
2008-08-02 14:33
学不懂也要学C
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2008-7-3
收藏
得分:0 
这个可以拿去参考一下
main()
{int sum,sign,i,term;
 sum=1,sign=1,i=3;
 while(i<=101)
   {sign=-sign;
    term=sign*i;   
    sum+=term;
    i+=2;
   }      
 printf("%d",sum);
}
2008-08-02 16:49
快速回复:本人初学C语言 发现循环满繁琐 有一题不解
数据加载中...
 
   



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

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