看板 C_and_CPP 關於我們 聯絡資訊
#include<stdio.h> #include<stdlib.h> #include <string> #define Swap int(a[j],a[j+1]); int main() { int a[5],t,i,j; for (i=0;i<5;i++) scanf("%d",&a[i]); printf("排序前數字為:%d %d %d %d %d\n",a[0],a[1],a[2],a[3],a[4]); for (i = 0 ; i < 5 ; i++) { for ( j = 0 ; j < 4 ; j++) { if (a[j] > a[j+1]) {t=a[j];a[j]=a[j+1];a[j+1]=t;}; } } printf("排序後數字為:%d %d %d %d %d\n",a[0],a[1],a[2],a[3],a[4]); system("pause"); return 0; } 這個是我比大小程式碼 我之前一直卡在 for (i = 0 ; i < 5 ; i++)以下 到 {t=a[j];a[j]=a[j+1];a[j+1]=t;}; 這邊是我同學幫我改的 請問這邊是怎麼運作的?? 可以解釋給我聽嗎謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.237.33
SHBK:那段在"交換數值" 03/15 21:55
a1013944:那為什麼要打 for (i = 0 ; i < 5 ; i++) 03/15 21:57
tsaiminghan:看起來看是氣泡排序法 03/15 22:53
VictorTom:如果語法語意已經懂了, 隨便帶5個數進去一步步走完一遍 03/15 22:58
VictorTom:程式, 就知道這個排序演算法是怎麼運作的.... 03/15 22:59
VictorTom:如果語法語意都不懂, 請把書拿出來看一下for怎麼用的:) 03/15 22:59
Alexboo:Bubble sort 03/16 15:29
jerohands:關於這類處理資料結構的問題,STL絕對是你的好朋友!! 03/16 17:18