作者a1013944 (ㄚ春)
看板C_and_CPP
標題[問題] swap&比大小
時間Sun Mar 15 21:44:47 2009
#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