大神幫忙看看 我這兒哪錯了啊(小白求教)

uj5u.com熱心網友回復:
if (a > b) b += a -= b, a = b - a;if (b > c) c += b -= c, b = c - b;
if (c > d) d += c -= d, c = d - c;
if (a > b) b += a -= b, a = b - a;
if (b > c) c += b -= c, b = c - b;
if (a > b) b += a -= b, a = b - a;
uj5u.com熱心網友回復:
4個數還是排序算了。uj5u.com熱心網友回復:
對閣下的敬仰有如滔滔江水
uj5u.com熱心網友回復:
其實老概這個可讀性不好,老概貌似不重視可讀性。uj5u.com熱心網友回復:
呃,我只是按照樓主的思路寫了一下,其實簡單排序只需要3行代碼
uj5u.com熱心網友回復:
3行貌似不夠,除非都寫在一行。
uj5u.com熱心網友回復:
簡單冒泡,3行是可以的:#include <stdio.h>
int main()
{
int x[4];
printf("input four numbers: ");
scanf("%d,%d,%d,%d", &x[0], &x[1], &x[2], &x[3]);
for (int i = 3; i > 0; i--)
for (int j = 0, k; j < i; j++)
if (x[j] > x[j + 1]) k = x[j], x[j] = x[j + 1], x[j + 1] = k;
printf("%d %d %d %d\n", x[0], x[1], x[2], x[3]);
return 0;
}
關鍵在于兩數交換用逗號運算式可以寫在一行
uj5u.com熱心網友回復:
簡單冒泡,3行是可以的:
#include <stdio.h>
int main()
{
int x[4];
printf("input four numbers: ");
scanf("%d,%d,%d,%d", &x[0], &x[1], &x[2], &x[3]);
for (int i = 3; i > 0; i--)
for (int j = 0, k; j < i; j++)
if (x[j] > x[j + 1]) k = x[j], x[j] = x[j + 1], x[j + 1] = k;
printf("%d %d %d %d\n", x[0], x[1], x[2], x[3]);
return 0;
}
關鍵在于兩數交換用逗號運算式可以寫在一行
呼叫STL的sort也可以。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/24015.html
標籤:基礎類
上一篇:Python類的一個問題
