【问题标题】:How can I obtain which of this variables have the highest value? [closed]我怎样才能获得这些变量中的哪一个具有最高值? [关闭]
【发布时间】:2013-04-30 20:31:23
【问题描述】:

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

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

最简单的方法是什么?

【问题讨论】:

  • 如果您需要帮助,您至少需要指定 一些 基本代码。对于您当前的问题,我们所能做的就是从头到尾把它拼出来,这不是这个网站的目的。表现出更多的努力;)
  • return max(max(max(max(max(A, B), C), D), E), F);, døh.
  • @rightfold:这是错误的 - 它表示最大值,而不是包含它的变量。 Shafik:这也是错误的......变量不是数组,排序也会破坏身份感,从而阻止知道哪个原始变量包含最高值。

标签: c max highest


【解决方案1】:
#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;
}

【讨论】:

  • 没什么特别的意思。
【解决方案2】:

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

【讨论】:

  • +1 用于描述在不提供代码的情况下正确执行的操作 ;-)。如何“迭代”变量 a、b、c、d、e、f 本身就是一个小问题......
  • 同上。为教学 +1,而不是为他们做作业。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-26
  • 1970-01-01
  • 2023-03-21
  • 2016-04-06
  • 2012-09-03
  • 2016-05-07
相关资源
最近更新 更多