RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 
 82  3/6  <  1  2  3  4  5  6  > 


 
主題: [C&C++] [問題]vc++的問題 已放上那3題MFC跟其他資料   字型大小:||| 
Johnny Brove
銀驢友〔高級〕
等級: 14等級: 14等級: 14等級: 14
論壇第一正直

 . 積分: 882
 . 精華: 5
 . 文章: 2162
 . 收花: 4874 支
 . 送花: 7205 支
 . 比例: 1.48
 . 在線: 864 小時
 . 瀏覽: 27266 頁
 . 註冊: 7974
 . 失蹤: 4388
 . Lycian League
#31 : 2006-3-28 11:11 PM     只看本作者 引言回覆

for(d=0;d<=9;d++)只是輸入啊

要照號碼排列的話

我之前不是寫了一個bubble sort的example了嗎?

主要是兩兩比較,然後不斷的把大的(或小的)往上推



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
h80053
銀驢友〔中級〕
等級: 13等級: 13等級: 13等級: 13


十週年紀念徽章(五級)  

 . 積分: 720
 . 精華: 1
 . 文章: 2053
 . 收花: 5801 支
 . 送花: 8430 支
 . 比例: 1.45
 . 在線: 2473 小時
 . 瀏覽: 17320 頁
 . 註冊: 7176
 . 失蹤: 74
 . 台中
#32 : 2006-3-29 06:27 AM     只看本作者 引言回覆

for ( int counter = 0, limit = 9; counter < 9; counter++, limit-- )
        {               
                for ( int counter = 0; counter < limit; counter++ )
                {
                        if ( a[counter+1] < a[counter] )
                        {
                                int temp = a[counter+1];
                                a[counter+1] = a[counter];
                                a[counter] = temp;
                        }        
                }
        }

counter是指??l  imit是指??

[h80053 在 2006-3-29 06:29 AM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
Johnny Brove
銀驢友〔高級〕
等級: 14等級: 14等級: 14等級: 14
論壇第一正直

 . 積分: 882
 . 精華: 5
 . 文章: 2162
 . 收花: 4874 支
 . 送花: 7205 支
 . 比例: 1.48
 . 在線: 864 小時
 . 瀏覽: 27266 頁
 . 註冊: 7974
 . 失蹤: 4388
 . Lycian League
#33 : 2006-3-29 08:08 AM     只看本作者 引言回覆

算了

你把它改成這樣就好了

for ( int counter = 0; counter < 9; counter++ )
        {               
                for ( int counter = 0; counter < 9; counter++ )

如同我之前講的,就是一直把較大的往上疊



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
h80053
銀驢友〔中級〕
等級: 13等級: 13等級: 13等級: 13


十週年紀念徽章(五級)  

 . 積分: 720
 . 精華: 1
 . 文章: 2053
 . 收花: 5801 支
 . 送花: 8430 支
 . 比例: 1.45
 . 在線: 2473 小時
 . 瀏覽: 17320 頁
 . 註冊: 7176
 . 失蹤: 74
 . 台中
#34 : 2006-3-29 01:41 PM     只看本作者 引言回覆

#include<iostream.h>
void main()
{  
int d,e=10,f,g;
int a[10],b[10];
    char c[10];
for(d=0;d<=9;d++)
{   cout<<"請輸入座號"<<endl;
    cin >>a[d];
   
cout<<"請輸入姓名"<<endl;
     cin >>c[d];
   
cout<<"請輸入分數"<<endl;
     cin >>b[d];
}





   
    cout<<a[d]<<"\n"<<c[d]<<"\n"<<b[d]<<endl;

  for(d=0;d<e-1;d++)
          for(f=d;f<e;f++)
   if(a[d]>a[f])
   {     g=a[d];
         a[d]=a[f];
                 a[f]=g;
                 }


   cout<<"座號"<<"姓名"<<"分數";
    for(d=0;d<e;d++)
                cout<<a[d]<<c[d]<<b[d];







}



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
Johnny Brove
銀驢友〔高級〕
等級: 14等級: 14等級: 14等級: 14
論壇第一正直

 . 積分: 882
 . 精華: 5
 . 文章: 2162
 . 收花: 4874 支
 . 送花: 7205 支
 . 比例: 1.48
 . 在線: 864 小時
 . 瀏覽: 27266 頁
 . 註冊: 7974
 . 失蹤: 4388
 . Lycian League
#35 : 2006-3-29 06:46 PM     只看本作者 引言回覆

for ( d = 0; d < e - 1; d++ )
{
       for ( f = d; f < e; f++ )
       {   
              if ( a[d] > a[f] )
              {
                     g = a[d];
                     a[d] = a[f];
                     a[f] = g;
              }
       }
}

這樣你一次只會交換a[]

其他的當然不會動啦

另外,請注意code的排版

這樣子寫真的很不好看



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
h80053
銀驢友〔中級〕
等級: 13等級: 13等級: 13等級: 13


十週年紀念徽章(五級)  

 . 積分: 720
 . 精華: 1
 . 文章: 2053
 . 收花: 5801 支
 . 送花: 8430 支
 . 比例: 1.45
 . 在線: 2473 小時
 . 瀏覽: 17320 頁
 . 註冊: 7176
 . 失蹤: 74
 . 台中
#36 : 2006-3-29 08:17 PM     只看本作者 引言回覆

如果說要讓此程式一成績高低跑的話

還要加什麼CODE??   

氣泡排序中的內洄圈外洄圈能吼請大大指導一下
看的花花的



謝謝

[h80053 在 2006-3-29 08:21 PM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
Johnny Brove
銀驢友〔高級〕
等級: 14等級: 14等級: 14等級: 14
論壇第一正直

 . 積分: 882
 . 精華: 5
 . 文章: 2162
 . 收花: 4874 支
 . 送花: 7205 支
 . 比例: 1.48
 . 在線: 864 小時
 . 瀏覽: 27266 頁
 . 註冊: 7974
 . 失蹤: 4388
 . Lycian League
#37 : 2006-3-29 08:44 PM     只看本作者 引言回覆

外洄圈只是跑n次內迴圈罷了

而run"內迴圈"是利用兩兩大小比較而互換

把最大值浮到最上面

接著run則是把次大值浮到第二個

以此類推

所以要修改的話

if ( a[d] > a[f] )
{
         g = a[d];
         a[d] = a[f];
         a[f] = g;
}

就從這裡著手啊

把所有的array都一同變換



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
h80053
銀驢友〔中級〕
等級: 13等級: 13等級: 13等級: 13


十週年紀念徽章(五級)  

 . 積分: 720
 . 精華: 1
 . 文章: 2053
 . 收花: 5801 支
 . 送花: 8430 支
 . 比例: 1.45
 . 在線: 2473 小時
 . 瀏覽: 17320 頁
 . 註冊: 7176
 . 失蹤: 74
 . 台中
#38 : 2006-3-29 10:03 PM     只看本作者 引言回覆

意思是說
if ( a[d] > a[f] )
{
         g = a[d];
         a[d] = a[f];
         a[f] = g;
}

把a[d]裡的變數改成a[b]ora[c]

謝謝



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
Johnny Brove
銀驢友〔高級〕
等級: 14等級: 14等級: 14等級: 14
論壇第一正直

 . 積分: 882
 . 精華: 5
 . 文章: 2162
 . 收花: 4874 支
 . 送花: 7205 支
 . 比例: 1.48
 . 在線: 864 小時
 . 瀏覽: 27266 頁
 . 註冊: 7974
 . 失蹤: 4388
 . Lycian League
#39 : 2006-3-30 12:29 AM     只看本作者 引言回覆

看你決定要用那個array去判斷啊

此外,雖然只用一個判斷

但是必須三個array同時調換啊

不然以你寫的為例

a[d]變成了a[f]

而c[d]及b[d]沒一起調換

那就號碼不對姓名及分數了

最後,想學程式還是得買本書來看

我這樣講也不能說得很明白

"頂多"幫你除個錯罷了



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
h80053
銀驢友〔中級〕
等級: 13等級: 13等級: 13等級: 13


十週年紀念徽章(五級)  

 . 積分: 720
 . 精華: 1
 . 文章: 2053
 . 收花: 5801 支
 . 送花: 8430 支
 . 比例: 1.45
 . 在線: 2473 小時
 . 瀏覽: 17320 頁
 . 註冊: 7176
 . 失蹤: 74
 . 台中
#40 : 2006-3-30 12:30 PM     只看本作者 引言回覆

再請問大大一下 如果說我的cout<<"請輸入姓名"<<endl; 這一個我如果要輸入 中文字的話那
int d,e=10,f,g;
int a[10],b[10];
    char c[10];  ==> 這一個要怎麼修改??
因為我的cout<<"請輸入姓名"<<endl;  這一個只能輸入數字

我看了課本他是寫說    char 字串變數[字串長度]="字串資料":
但是如果這麼打的話   我就不能自己輸入要的姓名

下面這個是依照大大的說法後改的(依成績排列)



#include<iostream.h>
void main()
{  
     int d,e=10,f,g;
     int a[10],b[10];
     char c[10];
     for(d=0;d<=9;d++)
{    cout<<"請輸入座號"<<"\t"<<"請輸入姓名"<<"\t" <<"請輸入分數"<<endl;

     cin >>a[d];
   
     cin >>c[d];
   
     cin >>b[d];
}

          for(d=0;d<e-1;d++)
          for(f=d;f>e;f++)
          if(b[d]>b[f])
    {      g=b[d];
               b[d]=b[f];
                 b[f]=g;

                 }

   
          for(d=0;d<e;d++)
          cout<<"座號"<<a[d]<<"\t"<<"姓名"<<c[d]<<"\t"<<"分數"<<b[d]<<endl;;     


   
   
  


}


我照這樣run不可以照成績順序排列


先謝謝大大了

[h80053 在 2006-3-30 12:38 PM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
Johnny Brove
銀驢友〔高級〕
等級: 14等級: 14等級: 14等級: 14
論壇第一正直

 . 積分: 882
 . 精華: 5
 . 文章: 2162
 . 收花: 4874 支
 . 送花: 7205 支
 . 比例: 1.48
 . 在線: 864 小時
 . 瀏覽: 27266 頁
 . 註冊: 7974
 . 失蹤: 4388
 . Lycian League
#41 : 2006-3-30 05:52 PM     只看本作者 引言回覆

第一個問題我說過了

用string來做型態(需include string的header file)

第二個的bug在此

for ( d = 0; d < e - 1; d++ )
{
          for ( f = d; f > e; f++ )
       {         
               if ( b[d] > b[f] )
              {      
                     g = b[d];
                     b[d] = b[f];
                     b[f] = g;
              }
       }
}

另外,我講過第三遍了

你array沒有三個同時排序

一定會出現號不對名的情形

最後,請一定做好程式排版

你這樣子寫出來的程式

看的人一定會受不了

[Johnny Brove 在 2006-3-30 05:55 PM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
h80053
銀驢友〔中級〕
等級: 13等級: 13等級: 13等級: 13


十週年紀念徽章(五級)  

 . 積分: 720
 . 精華: 1
 . 文章: 2053
 . 收花: 5801 支
 . 送花: 8430 支
 . 比例: 1.45
 . 在線: 2473 小時
 . 瀏覽: 17320 頁
 . 註冊: 7176
 . 失蹤: 74
 . 台中
#42 : 2006-3-30 08:52 PM     只看本作者 引言回覆

我在想想看要怎麼做程式這東西還真不好懂


也謝謝大大的指導

[h80053 在 2006-3-30 08:54 PM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
h80053
銀驢友〔中級〕
等級: 13等級: 13等級: 13等級: 13


十週年紀念徽章(五級)  

 . 積分: 720
 . 精華: 1
 . 文章: 2053
 . 收花: 5801 支
 . 送花: 8430 支
 . 比例: 1.45
 . 在線: 2473 小時
 . 瀏覽: 17320 頁
 . 註冊: 7176
 . 失蹤: 74
 . 台中
#43 : 2006-3-30 11:13 PM     只看本作者 引言回覆

for(d=0;d<e-1;d++)

{     for(f=d;f>e;f++)
       if(a[d]>a[f])       
     {   g=b[d];
          b[d]=b[f];
          b[f]=g;
      }


   將符號改過後還是指照號碼排列
   同時排序已經知道少什麼了
   謝謝



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
Johnny Brove
銀驢友〔高級〕
等級: 14等級: 14等級: 14等級: 14
論壇第一正直

 . 積分: 882
 . 精華: 5
 . 文章: 2162
 . 收花: 4874 支
 . 送花: 7205 支
 . 比例: 1.48
 . 在線: 864 小時
 . 瀏覽: 27266 頁
 . 註冊: 7974
 . 失蹤: 4388
 . Lycian League
#44 : 2006-3-30 11:50 PM     只看本作者 引言回覆

我用紅字弄出來,你沒看到嗎?

for ( f = d; f > e; f++ )



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
h80053
銀驢友〔中級〕
等級: 13等級: 13等級: 13等級: 13


十週年紀念徽章(五級)  

 . 積分: 720
 . 精華: 1
 . 文章: 2053
 . 收花: 5801 支
 . 送花: 8430 支
 . 比例: 1.45
 . 在線: 2473 小時
 . 瀏覽: 17320 頁
 . 註冊: 7176
 . 失蹤: 74
 . 台中
#45 : 2006-3-31 09:11 AM     只看本作者 引言回覆

我把F>E改掉後還是無法照呈機高低排列??


[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記

 82  3/6  <  1  2  3  4  5  6  > 
   

快速回覆
表情符號

更多 Smilies

字型大小 : |||      [完成後可按 Ctrl+Enter 發佈]        

溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別    關閉 表情符號    關閉 Discuz! 代碼    使用個人簽名    接收新回覆信件通知
發表時自動複製內容   [立即複製] (IE only)


 



所在時區為 GMT+8, 現在時間是 2024-3-28 10:18 PM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.028958 second(s), 6 queries , Qzip disabled