廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 2477 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
hughalice
數位造型
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[C/C++][求助] 請高高手幫ㄍ忙修一下註解(詳解)以註解有錯麻煩指教^^Y
#include <iostream.h>

#include <iostream.h>

int main()
{
const int max = 12; // 宣告整數常數符號共12組
int counti, countj, buffer = 0; // 宣告整數變數並以0為該陣列得初始值
int number = {141,491,94,19,1078,20,767,9,40,812,538,1024};// 宣告一維陣列變數共12組
cout << "排序前:"; ..

訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容



獻花 x0 回到頂端 [樓 主] From:臺灣 | Posted:2008-04-14 23:07 |
DihKuh 手機
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

#include <iostream.h>

int main()
{
  const int max = 12;                 // 宣告整數常數符號共12組
  int counti, countj, buffer = 0;             // 宣告整數變數並以0為該陣列得初始值
  int number[max] = {141,491,94,19,1078,20,767,9,40,812,538,1024};// 宣告一維陣列[max]變數共12組
  cout << "排序前:";                           // 顯示"排序前:"
  for (counti = 0; counti < max; counti++)           //用迴圈輪流每個陣列
      cout << number[counti] << '\0'           //顯示陣列的資料
  for (counti = 0; counti < max-1; counti++)     //比較變數number[counti]的迴圈,第0到第10的陣列
      for (countj = counti; countj < max; countj++)   //被比較變數number[countj]的迴圈,第1到第11的陣列
          if (number[counti] < number[countj]) // *若須要則對調修改此項<>可調對排序,2個資料做比較大小
          {
              buffer = number[counti];   //將number[counti]的資料放置buffer
              number[counti] = number[countj]; //將number[countj]的資料放置number[counti]
              number[countj] = buffer;   //將buffer的資料放置number[countj]
          }     //上面三行指令主要是將number[counti]與number[countj]的資料互換
  cout << "\n排序後:";     // 顯示排序後資料
  for (counti = 0; counti < max; counti++) //用迴圈輪流每個陣列
      cout << number[counti] << '\0' //顯示陣列的資料
  cout << endl << endl; //顯示換行2次
  return 0;//程式結束
}


-------------------------------------這是分割線-------------------------------------------

如果看不懂的地方在問一下
我在詳細解釋


獻花 x0 回到頂端 [1 樓] From:臺灣 | Posted:2008-04-15 08:12 |
hughalice
數位造型
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

這一段阿!還是迷惘^^"可以在麻煩你一下嗎?


for (counti = 0; counti < max-1; counti++)   //比較變數number[counti]的迴圈,第0到第10的陣列


    for (countj = counti; countj < max; countj++)   //被比較變數number[countj]的迴圈,第1到第11的陣列


獻花 x0 回到頂端 [2 樓] From:臺灣 | Posted:2008-04-15 19:32 |
DihKuh 手機
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

for (counti = 0; counti < max-1; counti++)   //counti=0比11(max-1=12-1)小
    for (countj = counti+1; countj < max; countj++)   //這裡應該countj = counti+1比較合理
//countj =0+1=1比12(max=12)小
          if (number[counti] < number[countj])  
//因為counti=0,countj=1所以判斷"number[0] < number[1]" => 判斷"141<491"是否為真
//你的程式counti=0,countj=0變成判斷"141<141"是否為真,這樣與自己比較多做一個比較
          {       buffer = number[counti];
              number[counti] = number[countj];
              number[countj] = buffer;   }
//若為真則執行{}裡的動作,結果number[0]=491,number[1]=141,回第2迴圈控制運算
//number[12] = {491,141,94,19,1078,20,767,9,40,812,538,1024};
//若為假直接回第2迴圈控制運算

接下來就反覆上面省略說明
作指令"countj++" =>countj=1+1=2,這時counti不變counti=0,
再來做判斷比較"number[0] < number[2]" => "491<94"是否為真,若為真責執行{}裡的互換動作,做完回第2迴圈控制運算,若為假則直接回第2迴圈控制運算
因為counti這裡都不變所以我稱為"比較變數"而countj一直換到下一個數字所以我稱為"被比較變數"
countj=2---->number[12] = {491,141,94,19,1078,20,767,9,40,812,538,1024};
countj=3---->"491<19"------>number[12] = {491,141,94,19,1078,20,767,9,40,812,538,1024};
countj=4---->"491<1078"--->number[12] = {1078,141,94,19,491,20,767,9,40,812,538,1024};
countj=5---->"1078<20"----->number[12] = {1078,141,94,19,491,20,767,9,40,812,538,1024};
countj=11-->"1078<1024"-->number[12] = {1078,141,94,19,491,20,767,9,40,812,538,1024};
countj=12沒有小於max=12回到第一個迴圈作counti++,這時第1個數字就是最大的
counti=1,countj=2--->"141<94"--->number[12] = {1078,141,94,19,491,20,767,9,40,812,538,1024};
counti=1,countj=3--->"141<19"--->number[12] = {1078,141,94,19,491,20,767,9,40,812,538,1024};
counti=1,countj=4--->"141<491"--->number[12] = {1078,491,94,19,141,20,767,9,40,812,538,1024};
一直換到第2個數字是第2大的,就這樣循環排列


獻花 x0 回到頂端 [3 樓] From:臺灣 | Posted:2008-04-15 23:41 |

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