廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 12774 個閱讀者
 
<<   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.112794 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言