【发布时间】:2017-06-11 14:48:35
【问题描述】:
我有这个代码示例。我需要从数组元素中具有最高值的数组中获取maxDay。 (在本例中为 7.0)。所以我需要得到它的索引值(即24)。但我无法得到想要的输出。
这是我得到的输出:
最大使用天数:12
最大使用单位:7.00
每月最少使用天数:4
最小使用单位:0.00
当月平均使用量:1.80
当月总使用量:50.40
但正确的输出应该是:
最大使用天数:24
最大使用单位:7.00
每月最少使用天数:28
最小使用单位:0.00
当月平均使用量:1.80
当月总使用量:50.40
我试过这段代码,但它看起来不起作用。我找不到哪里出错了。你能帮帮我吗???
#include<stdio.h>
int main(){
float maxUsage=0,minUsage=1000,avgUsage,totUsage=0;
int maxDayI=0,maxDayJ=0,minDayI=0,minDayJ=0,count=0,i,j;
float usage[4][7]={{1.2, 2.1, 0.8, 0.0, 1.0, 1.3, 4.0},
{1.5, 3.2, 1.0, 1.3, 4.0, 1.5, 3.2},
{2.3, 0.4, 1.2, 2.1, 0.8, 0.0, 2.6},
{2.1, 1.7, 7.0, 1.2, 2.1, 0.8, 0.0} };
for(i=0;i<4;i++){
for(j=0;j<7;j++){
totUsage=totUsage+usage[i][j];
if(usage[i][j]>maxUsage){
maxDayI=i;
maxDayJ=j;
maxUsage=usage[i][j];
}else if(usage[i][j]<minUsage){
minDayI=i;
minDayJ=j;
minUsage=usage[i][j];
}
}
}
printf("Day of the Month with Maximun Usage: %d\n",(maxDayI+1)*(maxDayJ+1));
printf("Maximum Usage in Units: %.2f\n",maxUsage);
printf("Day of the Month with Minimum Usage: %d\n",(minDayI+1)*(minDayJ+1));
printf("Minimum Usage in Units: %.2f\n",minUsage);
printf("Average Usage for the Month: %.2f\n",totUsage/28);
printf("Total Usage for the Month: %.2f\n",totUsage);
return 0;
}
【问题讨论】:
-
一个最小的例子会使错误显而易见....
-
你可能想去学习如何使用调试器。
-
你是什么意思@KarolyHorvath
-
这对我没有帮助:(
-
也许这会有所帮助:1) 选择tour 2) 阅读ericlippert.com/2014/03/05/how-to-debug-small-programs