2014-06-16 50 views
-4

好,所以我給了一些調用函數的「簡單」C代碼,並且需要構建所述函數,將溫度從F轉換爲C,然後將C轉換爲F.但是,我並不確定如何處理傳遞給函數的所有不同變量。&variableName在函數的參數時做什麼?

這裏是現有代碼:

int main() 
{ 
    int degrees1 = 50, degrees2; 
    char scale1 = 'F', scale2; 
    convert_weight(degrees1, scale1, &degrees2, &scale2); 
    printf("%d %c = %d %c\n"); 
    degrees1 = 10; 
    scale1 = 'C'; 
    convert_weight(degrees1, scale1, &degrees2, &scale2); 
    printf("%d %c = %d %c\n"); 
    return 0; 
} 

我不明白所有的變量函數調用的意思。

我會知道該怎麼做,如果我不必將所有不同的東西傳遞給函數,但可能不能混淆main。

如何編寫一個接受該表單參數的函數?

+1

因此,澄清一下,您是否在'&degrees2,&scale2'部分遇到最多麻煩? –

+1

這個問題太廣泛了 - 歸結爲「C中的函數調用如何工作?」 StackOverflow處理更具體的問題。我強烈建議你回顧一下你有什麼材料和/或看一些介紹性的C教程。 –

+0

@SamIam是的,因爲我不知道我的功能如何處理它們。我嘗試忽略它們,但是當我編譯時,我得到了通知:「警告:比數據參數更多的'%'轉換[-Wformat] printf(」%d%c =%d%c \ n「);」 「我認爲這與指針有關? –

回答

2

我認爲你必須寫一個函數的原型如下:

void convert_weight(int degrees1, char scale1, int *degrees2, char *scale2); 

然後,在函數體中,你可以使用*degrees2作爲輸入/輸出int值,*scale2輸入/輸出char

在你簡單的代碼中,你不需要進一步弄亂指針。

PS:當你說:

printf("%d %c = %d %c\n"); 

你可能想:

printf("%d %c = %d %c\n", degrees1, scale1, degrees2, scale2); 

否則將呈現不確定的行爲。

+0

好吧,這就是爲什麼我的打印材料根本不工作,好吧,謝謝一堆,這是我需要的方向,對不起,我的帖子是鈍的,我只是不知道如何有時措詞。 –

相關問題