我的目标是获得6个不同湖泊的最低温度值,我能够获得除第一个值(湖泊更高)之外的所有值,我如何获得该值以进行打印?
我尝试将最冷temps的初始值设置为数组的第一行,以便将其与大于0的值进行比较(文件中的值不会小于0)
这是我用于这个问题的文件数据,它的格式是年/日/然后每个湖为了https://drive.google.com/file/d/1ADaYffIlMjsZbGMA-85adDg2uXLydshY/view?usp=sharing
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
/* variables */
double alltemps[365][8], coldest[6], coldestday[6], coldestmonth[6];
int i, j;
/* j = rows, i = columns */
/* open file and assign values to the array */
FILE*WaterTemperatureData;
WaterTemperatureData=fopen("WaterTemperatureData.txt", "r");
for(j=0;j<365;++j)
{
for(i=0;i<8;++i)
{
fscanf(WaterTemperatureData, "%lf", &alltemps[j][i]);
}
}
/* determine coldest temps for each lake */
for(i=2; i<8; ++i)
{
for(j=0; j<365; ++j)
{
coldest[i-1] = alltemps[0][i];
if (alltemps[j][i] < coldest[i-2])
{
coldest[i-2] = alltemps[j][i];
coldestday[i-2] = alltemps[j][1];
}
}
}
/* output statements */
printf("Coldest Temperature of Lake Superior is %2.2lf on %0.0lf\n", coldest[0],coldestday[0]);
printf("Coldest Temperature of Lake Michigan is %2.2lf on %0.0lf\n", coldest [1],coldestday[1]);
printf("Coldest Temperature of Lake Huron is %2.2lf on %0.0lf\n", coldest [2],coldestday[2]);
printf("Coldest Temperature of Lake Erie is %2.2lf on %0.0lf\n", coldest [3],coldestday[3]);
printf("Coldest Temperature of Lake Ontario is %2.2lf on %0.0lf\n", coldest [4],coldestday[4]);
printf("Coldest Temperature of Lake St. Clair is %2.2lf on %0.0lf\n", coldest [5],coldestday[5]);
return(0);
}
对于湖泊,我希望在第72天获得1.33而不是在第0天获得0
为什么我的第一个值无法正确打印(?)
coldest[i-2]
在被分配之前使用 - >未定义的行为(UB)。
for(i=2; i<8; ++i)
// coldest[2-2] never assigned
if (alltemps[j][i] < coldest[i-2])