2013-05-07 49 views
-5

我必須知道這些變量具有最高值:如何獲得哪些變量具有最高值?

A=1 
B=500 
C=100 
D=700 
E=5 
F=1000 

這是做最簡單的方法?

+3

如果您需要某些幫助,您至少需要指定* some *基本代碼。用你目前的問題,我們所能做的就是從頭到尾拼出來,這不是這個網站的目的。顯示出更多的努力;) – 2013-05-07 01:15:02

+0

'return max(max(max(max(max(A,B),C),D),E),f);',døh。 – 2013-05-07 01:15:37

+0

[C庫函數做排序]的可能重複(http://stackoverflow.com/questions/1787996/c-library-function-to-do-sort) – 2013-05-07 01:16:06

回答

3

您可以選擇其中一個作爲最高值的潛在變量。然後遍歷所有變量。在每次迭代中,查看該變量是否具有比候選人更高的值。如果有,請替換您的候選人。當您遍歷所有變量時,潛在的候選變量就是具有最高值的實際變量。

+2

+1用於描述如何正確執行而不提供代碼;-)。如何通過變量a,b,c,d,e來「迭代」,f本身就是一個小問題...... – 2013-05-07 01:35:34

+0

同上。 +1來教學,而不是爲他們做一些作業。 – Leigh 2013-05-07 01:50:43

0
#include <stdio.h> 
#include <limits.h> 

#define max(x) max_value(x, #x) 

typedef struct _var { 
    const char *name; 
    int value; 
} Var; 


Var max_value(int value, const char *name){ 
    static Var max = {NULL, INT_MIN}; 
    Var temp = { max.name, max.value }; 

    if(name != NULL){ 
     if(max.value < value){ 
      max.name = name; 
      max.value = value; 
      temp = max; 
     } 
    } else { 
     temp = max; 
     max.name = NULL; 
     max.value = INT_MIN; 
    } 

    return temp; 
} 

int main(void){ 
    int A=1; 
    int B=500; 
    int C=100; 
    int D=700; 
    int E=5; 
    int F=1000; 
    Var v; 

    v=max(A); 
    v=max(B); 
    v=max(C); 
    v=max(D); 
    v=max(E); 
    v=max(F); 
/* 
    max(A); 
    max(B); 
    max(C); 
    max(D); 
    max(E); 
    max(F); 
    v = max_value(INT_MIN, NULL);//and reset 
*/ 
    printf("max is %d of variable %s\n", v.value, v.name);//max is 1000 of variable F 
    return 0; 
} 
+0

沒有特別意義。 – BLUEPIXY 2013-05-07 12:08:52

相關問題