广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 12731 个阅读者
 
<<   1   2   3  下页 >>(共 3 页)
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
csr
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x0 鲜花 x898
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[C/C++][求助] 帮忙改正奇数和程式
刚学c/c++
偶数和
及1加到100都可以为何奇数和会弄得乱七八糟呢
大大们可否看小弟那错了
帮忙改正一下
好吗
拜托了

#include<stdio.h>
#include<stdlib.h>
int main(void)
{
  int   i=1,sum=0;    
  start:
      i+=2;
      sum+=i;
      printf(&q ..

访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容



[ 此文章被csr在2010-12-06 21:34重新编辑 ]



献花 x0 回到顶端 [楼 主] From:台湾中华电信 | Posted:2010-12-06 17:47 |
ronlain
数位造型
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x1 鲜花 x11
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

把sum+=i 跟 i+=2反过来就好了

int   i=1,sum=0;  
start:

    sum+=i;
    i+=2;
    printf("%d",i);


献花 x0 回到顶端 [1 楼] From:台固媒体 | Posted:2011-01-05 23:29 |
csr
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x0 鲜花 x898
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

还是不行
因为它少了1但是却多了101
所以还是错误
谢谢


献花 x0 回到顶端 [2 楼] From:台湾中华电信 | Posted:2011-01-08 15:08 |
ronlain
数位造型
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x1 鲜花 x11
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

你再试看看吧 应该没少也没多
第一次i=1 sum+=1 1不会少
最后一次 i=99 sum+=99
i+=2 i=101 这个101下一个 if (i<100) 不会成立


int   i=1,sum=0;
start:
  sum+=i;
  i+=2;
  if(i<100)


献花 x0 回到顶端 [3 楼] From:台固媒体 | Posted:2011-01-08 23:43 |
csr
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x0 鲜花 x898
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 ronlain 于 2011-01-08 23:43 发表的 : 到引言文
你再试看看吧 应该没少也没多
第一次i=1 sum+=1 1不会少
最后一次 i=99 sum+=99
i+=2 i=101 这个101下一个 if (i<100) 不会成立


int   i=1,sum=0;
start:
  sum+=i;
  i+=2;
  if(i<100)

真的不行
因为1+2=3所以1不见了,它就从3开始算起,99+2=101,而99是 if(i<100)符合假设
若不相信
大大你用dev c++编译看看
我个人是把它改成如下程式码


#include<stdio.h>
#include<stdlib.h>
int main(void)
{
  int   i=-1,sum=0;    
  start:
      i+=2;
      sum+=i;
      printf("%d",i);
      if(i<99)
     
  {
        printf("+");
        goto start;
  }
    printf("=%d\n",sum);
  system("pause");
  return 0;
}


[ 此文章被csr在2011-01-28 18:01重新编辑 ]


献花 x0 回到顶端 [4 楼] From:台湾中华电信 | Posted:2011-01-28 17:54 |
totsi
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x53
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

原因很简单,因为您是先加完再印,所以i=1,且i+=2时,下一行i已经等于 i = 1 +2了,所以结果当然会是3。

因此就像您改的,要先从-1开始加,才会让第一组出来的数字为1。
除非您是先印再加。

但ronlain大大说的也没错,因为ronlain大大并没有印值,而是直接算总和,所以他一开始把i=1加进来,所以总和也是会对的。

而且您也没有说少的1是「没加进和里」还是「没印出来」,我想,这ˋ样要debug可能会有所落差噜~~

希望对您有帮助 表情


恩...
献花 x0 回到顶端 [5 楼] From:台湾中华电信 | Posted:2011-01-31 08:56 |
csr
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x0 鲜花 x898
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 totsi 于 2011-01-31 08:56 发表的 : 到引言文
原因很简单,因为您是先加完再印,所以i=1,且i+=2时,下一行i已经等于 i = 1 +2了,所以结果当然会是3。

因此就像您改的,要先从-1开始加,才会让第一组出来的数字为1。
除非您是先印再加。

但ronlain大大说的也没错,因为ronlain大大并没有印值,而是直接算总和,所以他一开始把i=1加进来,所以总和也是会对的。

而且您也没有说少的1是「没加进和里」还是「没印出来」,我想,这ˋ样要debug可能会有所落差噜~~

希望对您有帮助 表情

感恩大大解说
已试过编译
还是一样
所以仍然有问题
谢谢


献花 x0 回到顶端 [6 楼] From:台湾行政院研考会 | Posted:2011-01-31 11:14 |
totsi
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x53
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 csr 于 2011-01-31 11:14 发表的 : 到引言文


感恩大大解说
已试过编译
还是一样
所以仍然有问题
谢谢


那就好玩噜,我用ronlain大大的方式,改用while来写而已,结果同ronloain大大所言。
所以错是错在结果不对噜?XD
复制程式
       int sum = 0, i = 1;

       while ( i <= 100 )
       {
              sum += i;
              printf("The addition value = %d\n", i);

              i+=2;
       }

       printf("The sum =%d\n", sum);

       system("pause");
Result


恩...
献花 x0 回到顶端 [7 楼] From:台湾中华电信 | Posted:2011-01-31 12:52 |
csr
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x0 鲜花 x898
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 totsi 于 2011-01-31 12:52 发表的 : 到引言文


那就好玩噜,我用ronlain大大的方式,改用while来写而已,结果同ronloain大大所言。
所以错是错在结果不对噜?XD
[code].......

大大你好
很感谢你不辞辛劳的帮小弟找bug
但是
假如大大有dev c++编译器的话
请用小弟的程式编译一次就可明白
现在大大用其他方式改写
编译器又有差别
那结果就会不一样
所以小弟再次编译后仍然一样
因此还是无解
最后再次谢谢大大
感恩不尽


献花 x0 回到顶端 [8 楼] From:台湾行政院研考会 | Posted:2011-01-31 14:53 |
totsi
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x53
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

问题跟dev-c无关,会显示上有问题就像我第一个回的,您的作法是先做再印

所以当然会印不出1,但加出来的值是对的(ronlain大大的作法)

最后会多印101也是同样的原因。

所以会建议您把您跑的图跟code贴在同一个回覆内,至少看的人会比较清楚知道问题。

最后,不建议用goto写回圈,原因我想您多玩几次就能体会了~~

希望对您有帮助~ 表情

ps.一开始我还以为start: 是新的回圈语法XDD


恩...
献花 x0 回到顶端 [9 楼] From:台湾中华电信 | Posted:2011-01-31 17:17 |

<<   1   2   3  下页 >>(共 3 页)
首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.055131 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言