-6

我必须知道哪些变量具有最高值:

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

哪种方法最简单?

4

2 回答 2

3

您可以选择其中一个作为具有最高值的潜在变量。然后遍历所有变量。在每次迭代中,查看该变量的值是否高于您的候选值。如果是这样,请更换您的候选人。当您遍历所有变量时,潜在的候选变量是具有最高值的实际变量。

于 2013-05-07T01:20:42.553 回答
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;
}
于 2013-05-07T12:07:55.620 回答