2012-09-30 18 views
1

昨天我參加了考試,發現有這樣的問題: 使用typedef編寫程序以找出兩個數字中較大的一個。在程序中使用typedef

所以這個問題的解決方案顯而易見的權利?但是我們必須使用typedef那是條件,所以這就是我所做的。

#include <stdio.h> 

typedef struct { 
    int a; 
}LARGE; 

void main() 
{ 
    LARGE a,b; 
    int c; 
    scanf("%d%d", &a.a,&b.a); 
    c = large(a.a,b.a); 
    printf("%d", c); 
} 

這是最主要的計劃,我已經寫了一個名爲大()函數返回最大的兩個數字。

這是我加入我的程序中的關鍵字類型定義,但該部門的教師說,我們應該使用typedef創建新的名稱,而不是在結構使用I,E:

typedef int large a,b; 

現在大是int的新名稱。

但問題沒有明確指定使用typedef爲正在使用的數據類型創建新名稱,所以我使用typedef使用結構編寫了程序,所以請讓我知道什麼是正確的方法。

在此先感謝。

+1

顯然,你的老師搞砸了。Q問*「程序使用'typedef'」*。你的程序做到了這一點。它符合被問到的問題的答案。 –

+1

我同意;而你的解決方案並不是最明顯的方法(''typedef''在結構體上基本上只是避免每次輸入''struct''的一種方法),但這並不是不正確的,因爲問題的含義模糊 –

+0

好的謝謝你所說的是我的回答是正確的根據問題,這是寫一個程序返回最大的兩個數字使用typedef,所以我寫了一個程序,返回最大的兩個數字使用typedef –

回答

0

但是正確使用typedef是爲現有數據類型創建別名。如果你用它來命名一個匿名結構(這是一個非常有效的用法),那麼它似乎錯過了本課的重點。

你的回答確實有效,問題是你的老師可能想給int另一個名字。