廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 12700 個閱讀者
 
<< 上頁  1   2   3  下頁 >>(共 3 頁)
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
csr
個人文章 個人相簿 個人日記 個人地圖
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x0 鮮花 x898
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

編譯情形這就是我編譯的結果
請指教
謝謝




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

以上是大大的寫法
雖然計算結果沒錯
但就是多了一個101及少了1
小弟指的就是這個
謝謝


[ 此文章被csr在2011-01-31 21:45重新編輯 ]



獻花 x0 回到頂端 [10 樓] From:台灣中華電信 | Posted:2011-01-31 21:05 |
csr
個人文章 個人相簿 個人日記 個人地圖
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x0 鮮花 x898
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用 csr 於 2011-01-31 21:05 發表的 : 到引言文
[attachment=727415]這就是我編譯的結果
請指教
謝謝

以下是我用另一種方式寫出來的程式
它也是另一種的奇數和

#include<stdio.h>
#include<stdlib.h>
int main(void)
{
  int i=1,sum=0;
  printf("i   總和 \n");
  printf("\n");
  for(i;i<=100;i+=2)
  {
      sum+=i;
      printf("%d     %d\n",i,sum);
  }
  system("pause");
  return 0;
}


[ 此文章被csr在2011-02-01 14:07重新編輯 ]


獻花 x0 回到頂端 [11 樓] From:台灣行政院研考會 | Posted:2011-01-31 21:10 |
totsi
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x53
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

複製程式
int main(void)
{
  int   i=1,sum=0;    
  start:
      sum+=i;
      printf("%d",i);

      i+=2;
      if(i<100)
     
  {
      printf("+");
      goto start;
  }
  printf("=%d\n",sum);
  system("pause");
  return 0;
}     


恩...
獻花 x1 回到頂端 [12 樓] From:台灣中華電信 | Posted:2011-02-01 09:50 |
csr
個人文章 個人相簿 個人日記 個人地圖
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x0 鮮花 x898
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

bug終於讓大大幫小弟改進
看了大大程式碼後
真才了解寫程式原來步驟一步都不能有疏忽
否則全盤皆墨
小弟以後一定會更全盤的去考量
希望大大這神來一筆
會讓小弟在學c語言時
會更加小心與思考
再次對大大至敬
感恩再三
謝謝
以後若小弟有不懂之處
希望大大還能適時對小弟施教

大大你好
底下這會出現兩個+
不知要如何改
謝謝
程式碼如下
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
  int   i=0,sum=0,;
  start:
      i+=1;
      if(i%2==1)
      sum+=i;
      if(i%2==1)
      printf("%d",i);
      if(i<100)  
  {
  printf("+");
  goto start;
  }
  printf("=%d\n",sum);
  system("pause");
  return 0;
}  



[ 此文章被csr在2011-02-01 17:55重新編輯 ]


獻花 x0 回到頂端 [13 樓] From:台灣中華電信 | Posted:2011-02-01 14:04 |
totsi
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x53
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

原因也很簡單,問題是因為您不管是奇數還是偶數,都會走到printf("+")。

所以顯示"+"應該是有真的加值進來時,才顯示"+"才對。

所以簡單作法是
複製程式
  if(i<100 &&(i%2 == 1) )   
  {
    printf("+");
    goto start;
  }

目前手頭沒有compiler可以測,所以您可以先玩玩看。

如果不行,那就記得修改的條件是「有加入的值,才顯示"+"」但是這個要注意頭尾的問題。

個人還是建議不要用goto當迴圈使用。

希望對您有幫助~~ 表情

我比較偏好的寫法如下:
複製程式
int main(void)
{
  int   i=0,sum=0,; 
  start:
       i+=1;
      if(i%2 == 0) {
        goto start;
      }
     
      sum+=i;
      printf("%d",i);
      if(i<100 && i != 99)   
     {
        printf("+");
        goto start;
      }
      printf("=%d\n",sum);
      system("pause");
      return 0;
}   


恩...
獻花 x0 回到頂端 [14 樓] From:台灣台灣固網 | Posted:2011-02-03 10:59 |
星辰雪
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x82
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

原來還有這一招
可以使用 goto
跳回去 start
真不錯
可以學習一下
我好像比較少
使用到 goto


「在現實孤獨而痛苦的我啊,跟隨著她走吧!因為你就像是落葉,毫無目的的落下,而她是只屬於你的那陣風,將帶你的心飛向自由。」
獻花 x0 回到頂端 [15 樓] From:台灣中華電信 | Posted:2011-02-03 11:52 |
csr
個人文章 個人相簿 個人日記 個人地圖
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x0 鮮花 x898
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用 totsi 於 2011-02-03 10:59 發表的 : 到引言文
原因也很簡單,問題是因為您不管是奇數還是偶數,都會走到printf("+")。
所以顯示"+"應該是有真的加值進來時,才顯示"+"才對。
所以簡單作法是
[code] if(i<100 &&(i%2 == 1) )  
.......

大大
不可以耶
編譯出來如下



另外大大寫的就ok
真是佩服
小弟要多努力邏輯思考一下
謝謝


[ 此文章被csr在2011-02-04 09:09重新編輯 ]


獻花 x0 回到頂端 [16 樓] From:台灣中華電信 | Posted:2011-02-04 08:57 |
totsi
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x53
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

不好意思,我忘記您的作法會出現只有跑一次的問題XDDD

如使用您的方式,可以用的code如下:
複製程式
  if(i<100)   
  {
    if(i%2 == 1 && i != 99)
    {
       printf("+");
    }
    goto start;
  }

還有,最後還是老生常談,迴圈非必要時,少用goto來玩。
不然會很常在除錯XDD。
for...do while的反而會比較好抓XDD


恩...
獻花 x1 回到頂端 [17 樓] From:台灣中華電信 | Posted:2011-02-08 10:27 |
csr
個人文章 個人相簿 個人日記 個人地圖
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x0 鮮花 x898
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用 totsi 於 2011-02-08 10:27 發表的 : 到引言文
不好意思,我忘記您的作法會出現只有跑一次的問題XDDD

如使用您的方式,可以用的code如下:
複製程式
  if(i<100)   
  {
    if(i%2 == 1 && i != 99)
    {
       printf("+");
    }
    goto start;
  }

還有,最後還是老生常談,迴圈非必要時,少用goto來玩。
不然會很常在除錯XDD。
for...do while的反而會比較好抓XDD

測試後一切OK
大大可真是高手
小弟佩服的五體投地
看來
小弟對於語言邏輯慨念要好好多加強囉
不過
是否可請教大大一個問題
那就是書本上的範例大約五六成都看的懂
但是題目一來那就一頭霧水不知如何了
像這樣
是不是該加強那方面的學習
才能如大大這樣手到擒來不費吹灰之力
謝謝


獻花 x0 回到頂端 [18 樓] From:台灣中華電信 | Posted:2011-02-09 20:49 |
totsi
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x53
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

高手不敢稱~目前也才等ˋ級3而已XDDD

其實沒什麼別的方法,就多看、多聽、多問、多做,最重要的是多想

想不通,找管道問,問題寫的清楚,就有人願意幫忙嚕^^m

想完後再問,比較會知道自己思路上少考慮哪些部分

這只是自己短短3年的學習心得~~

共勉之~~

希望對您有幫助XDDD

PS.書上範例不一定都能用,所以拿到手的時候,建議先想想看他為何要這樣寫,那這樣寫能不能用。不確定的話就用編輯器來debug,邊debug就知道他哪裡的邏輯錯了。


恩...
獻花 x1 回到頂端 [19 樓] From:台灣中華電信 | Posted:2011-02-11 08:52 |

<< 上頁  1   2   3  下頁 >>(共 3 頁)
首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.075360 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言