我必须知道哪些变量具有最高值:
A=1
B=500
C=100
D=700
E=5
F=1000
哪种方法最简单?
您可以选择其中一个作为具有最高值的潜在变量。然后遍历所有变量。在每次迭代中,查看该变量的值是否高于您的候选值。如果是这样,请更换您的候选人。当您遍历所有变量时,潜在的候选变量是具有最高值的实际变量。
#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;
}