Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何找到具有最大值的多维数组的索引_C_Arrays - Fatal编程技术网

C 如何找到具有最大值的多维数组的索引

C 如何找到具有最大值的多维数组的索引,c,arrays,C,Arrays,我有这个代码示例来查找最长的使用天数,它就像一个符咒。但是我需要得到哪个数组索引具有最大值。我尝试了很多方法,但没有找到解决办法。这就是我尝试过的: #include<stdio.h> int main(){ float maximumDayUsage=0,minimumDayDayUsage=0; int whichDayHasMaximumUsage; float usage[7][5]={ {1.2, 2.1, 0.8, 0.0, 4.1},

我有这个代码示例来查找最长的使用天数,它就像一个符咒。但是我需要得到哪个
数组索引
具有最大值。我尝试了很多方法,但没有找到解决办法。这就是我尝试过的:

#include<stdio.h>
int main(){
    float maximumDayUsage=0,minimumDayDayUsage=0;
    int whichDayHasMaximumUsage;
    float usage[7][5]={ {1.2, 2.1, 0.8, 0.0, 4.1},
                        {1.0, 1.3, 4.0, 1.5, 7.8},
                        {3.2, 1.0, 1.3, 4.0, 9.5},
                        {1.5, 3.2, 2.3, 0.4, 7.4}, 
                        {1.2, 2.1, 0.8, 0.0, 4.1},
                        {2.6, 2.1, 1.7, 7.0, 13.4},
                        {1.2, 2.1, 0.8, 0.0, 4.1} };
    for(int i=0;i<7;i++){
        for(int j=0;j<5;j++){
            if(usage[i][j]>maximumDayUsage){
                maximumDayUsage=usage[i][j];
                whichDayHasMaximumUsage++; 
            }else{

            }
        }
    }
    printf("Usage: %.2f\n",maximumDayUsage);
    printf("Which Day: %d",whichDayHasMaximumUsage);
    return 0;
}
#包括
int main(){
float maximumDayUsage=0,MinimumDayUsage=0;
具有最大使用量的int;
浮点用法[7][5]={{1.2,2.1,0.8,0.0,4.1},
{1.0, 1.3, 4.0, 1.5, 7.8},
{3.2, 1.0, 1.3, 4.0, 9.5},
{1.5, 3.2, 2.3, 0.4, 7.4}, 
{1.2, 2.1, 0.8, 0.0, 4.1},
{2.6, 2.1, 1.7, 7.0, 13.4},
{1.2, 2.1, 0.8, 0.0, 4.1} };

对于(int i=0;i只需在迭代数组时保存最大使用日的
i
j
索引即可:

int max_i = 0;
int max_j = 0;
float maximumDayUsage = 0;
for(int i=0;i<7;i++){
    for(int j=0;j<5;j++){
        if(usage[i][j] > maximumDayUsage) {
            maximumDayUsage = usage[i][j];
            max_i = i;
            max_j = j;
        }
    }
}
int max_i=0;
int max_j=0;
float maximumDayUsage=0;

对于(int i=0;i为什么每次你找到一个新的最高值时,你都会增加使用率最高的
值?将索引值
i
j
存储在某个地方不是更有意义吗?是的,我想我搞错了。你能告诉我至少一个提示来存储具有最大va的
索引
值吗lue???这个
max_i
max_j
怎么能保存具有最大值的
索引呢???你能澄清你的答案吗?@user7980830
max_i
max_j
将保存最大值的索引,原因与
maximumDayUsage
保存最大值本身的原因完全相同。这是可能是学习如何使用调试器(如GDB)的好时机。请仔细检查您的代码,看看值在您的程序运行时是如何变化的。@squemishossifrage即使我们试图为索引具有最大值的
max_i
max_j
分配值,我如何才能得到哪个索引具有最大值???@user7980830好吧,想一想。
maximumDayUsage
如何结束持有最大价值?我算出来了!非常感谢先生:)