2013-10-11 42 views
0

我需要做一個程序來安排4個數字的升序,如9 2 8 3到2 3 8 9. 所以我想通過使用交換的邏輯。我會使用if/else或switch語句,但首先我需要解決下面的這個問題。 我想輸入2個整數(稍後比較),然後交換它們並將其返回給主函數。我該怎麼做呢。請提供最好的解決方案,雖然我沒有被教過指針,結構等。C - 輸入2個值,將2個值返回給MAIN。交換

#include <stdio.h> 

int swap(int x, int y) 
{ 
int c; 
    c = x; 
    x = y; 
    y = c; 
    return x, y; 
} 

int main() 
{ 
int a = 5, b = 7; 

    printf("a=%d b=%d\n", a, b); 
    swap(a, b); 
    printf("a=%d b=%d\n", x, y); 
    return 0; 
} 

我想最終輸出爲7,5。謝謝!

回答

5
return x, y; 

你不能從一個函數返回多個值,你可以傳遞一個指針,然後修改其內容:變量的

#include <stdio.h> 

void swap(int *x, int *y) 
{ 
    int c; 

    c = *x; 
    *x = *y; 
    *y = c; 
} 

int main() 
{ 
    int a = 5, b = 7; 

    printf("a=%d b=%d\n", a, b); 
    swap(&a, &b); 
    printf("a=%d b=%d\n", a, b); 
    return 0; 
} 
+1

謝謝,你只需要寫一個和b代替x,y。上帝保佑你 – TREMOR

+0

不客氣;) –

1

通地址和b

void swap(int *x, int *y) 
{ 
int c; 
    c = *x; 
    *x = *y; 
    *y = c; 

} 

來自主的呼叫swap(&a,&b);

在main中打印a和b的值。

+1

你的指示工作! :D謝謝 – TREMOR

+0

最受歡迎... – Gangadhar

+1

我看不到在此代碼中的參考。 – 2013-10-11 19:32:59