C++ 程式錯誤.........
#include <iostream>
#include <cstdlib> using namespace std; void swap(int,int,int); int main(void) { int a=3,b=5,c=2; cout << "Before swap..."; cout << "a=" << a << ",b=" << b << ",c=" << c <<endl; cout << "After swap..."; swap(a,b,c); cout << "a=" << a << ",b=" << b <<",c=" << c << endl; system("pause"); return 0; } void swap(int x,int y,int z) { int temp; if (z>y) { temp=z; y=z; z=temp; } if (y>x) { temp=x; x=y; y=temp; } if (z>y) { temp=y; y=z; z=temp; } return; } 不知道該怎麼修改耶........ |
語法:
#include <iostream> |
這是個傳值換位問題,我直接從你函式那解說
以下紅色部分是你要修改的地方,藍色部分是解說 引用:
語法:
#include<iostream> 語法:
#define swap(a,b) a^=b^=a^=b; :on_28:歡迎各位高手切磋指教一翻^^ :on_58:另外小弟我11月初要代表學校比賽,祝福我吧!! |
引用:
要.加.油.喔 :on_79: |
其實我是要寫比大小
想寫成氣泡排序 但用副程式方式來寫 也想用指標 但不會 寫完之後竟然沒有比較大小耶 奇怪 joebin大大 所修改的程式碼不能動耶 |
引用:
所以直接寫出來沒校正過><(註:我還未成年,別叫我大大,我沒那麼老= =) 關於你要問的問題,我上一偏發文是針對你問的"不能交換數值而言" 若要用函式來寫泡泡~看看以下是否是你要的解答(用你的程式為底改寫) 語法:
#include<iostream> 依賴編譯程式校正成慣~"~壞習慣,不好~弟弟有練過~哥哥不能學喔!! |
不論是氣泡排列 還是xx排列
講到排列 最好是用 陣列去做 數值的交換不用到暫存變數的話 可以用 如果 a 大於 b 然後 a = a xor b b = a xor b a = a xor b 這就是上面 joebin 提到的 用c++的簡寫特性 就可寫成 a^=b^=a^=b; ====================== 氣泡排列是個人認為最簡單易懂 且容易掌控花費時間的一種排列方式 語法:
#include <cstdlib> |
感謝mini的提醒,不然我誤導他了XD:on_74:
不過好奇一問,mini您的程式碼能跑嘛?? 感覺好像不行~所以我擅自改了一點XD 不知道你的對還是我的對(沒編譯程式><) 請路過的看官有空幫忙跑跑看,謝!! |
引用:
方才修正了一行 原本 for (j=i; j<3; j++){ 改成 for (j=(i+1); j<3; j++){ 如此才不會多做一次白工 |
所有時間均為台北時間。現在的時間是 05:39 PM。 |
Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.
『服務條款』
* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *