史萊姆論壇

史萊姆論壇 (http://forum.slime.com.tw/)
-   程式語言討論區 (http://forum.slime.com.tw/f76.html)
-   -   關於C++ 氣泡排序法 (http://forum.slime.com.tw/thread229705.html)

foxsimon2001 2008-05-14 11:11 PM

關於C++ 氣泡排序法
 
程式規格是要用陣列來放入12個月份字串 之後再按照英文首一個字母排序
可是這樣會出現過多初始值 無法執行

char m[SIZE]= 可以改成 string m[size]=嗎??
我是想要把12個字串 分別放到12個陣列空間 之後再比較
可是似乎不行耶 希望大家能告訴我有沒有這種用法呀....


#include <iostream>
#include <cstring>
#define SIZE 12
using namespace std;
void main()
{
char m[SIZE]={"January", "February", "March",
"April", "May","June","July", "Aguest",
"September", "October", "November", "December"};

for(int a = 0 ; a < SIZE ; a++)
{
for(int j = a + 1 ; j < SIZE ; j++)
{
if( m[a] > m[j] )
{
char temp = m[a];
m[a] = m[j];
m[j] = temp;
}
}

}
cout << endl << "排序後 : " << endl;
for (int b = 0 ; b < SIZE ; b++)
cout << m[b] << endl;
}

ben2ben2 2008-05-15 02:07 AM

用這個看看吧

string months[12] ={"January","February","March","Aprile","May","June","July","August",

"September","October","November","December"};

印象中Char不能這樣用@@
抱歉,我畢業後就沒碰過程式語言囉,剛看以前的書還真有點看不懂。

在語法、函數和變數等章節會有詳細說明

rank 2008-05-15 03:38 AM

試試看吧!

語法:

#include <iostream>
#include <cstring>
#define SIZE 12
using namespace std;
void main()
{
char m[SIZE][20]={"January", "February", "March",
"April", "May","June","July", "Aguest",
"September", "October", "November", "December"};

char temp[20];

for(int a = 0 ; a < SIZE ; a++)
{
for(int j = a + 1 ; j < SIZE ; j++)
{
if( strcmp(m[a],m[j])>0 )
{
        strcpy(temp,m[a]);
        strcpy(m[a],m[j]);
        strcpy(m[j],temp);
        //char temp = m[a];
        //m[a] = m[j];
        //m[j] = temp;
}
}

}
cout << endl << "排序後 : " << endl;
for (int b = 0 ; b < SIZE ; b++)
cout << m[b] << endl;
}


foxsimon2001 2008-05-15 08:57 PM

謝謝大家回應

原來是要用string m[12]
只是標頭檔要加#include <string>
之前加錯了 所以string不能用


所有時間均為台北時間。現在的時間是 07:39 AM

Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.

『服務條款』

* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *


SEO by vBSEO 3.6.1