我是学生,我正在努力让最后一段代码完成我的任务。这已被问了一百万次,但我找不到适合我的解决方案。我只能在运行此程序时获取要打印的数组的最后位置。我不能使用任何快捷方式(矢量,maxelement()等)。有人可以帮忙吗?
#define inputfile "C:\\C_txt_files\\wind.txt"
int i, j, nrows, ncols;
double wind_max, wind_min, wind_array[12][5], index_minmonth=0,
index_minyear=0, index_maxmonth=0, index_maxyear=0;
fscanf(wind, "%d %d", &nrows, &ncols);
/*Find Min and Max, and Compute average for each row. Locate Min and Max*/
wind_min = wind_array[0][0];
wind_max = wind_array[0][0];
for(i=0; i<nrows; i++)
{
for(j=0; j<ncols; j++)
{
if(wind_array[i][j]<wind_min)
wind_min = wind_array[i][j];
index_minmonth = i;
index_minyear = j;
if(wind_array[i][j]>wind_max)
wind_max = wind_array[i][j];
index_maxmonth = i;
index_maxyear = j;
}
}
index_minmonth += 1;
index_minyear += 1;
index_maxmonth += 1;
index_maxyear += 1;
printf("Minimum speed is %2.0f mph in month %2.0f, year %1.0f.\n", wind_min,
index_minmonth, index_minyear);
printf("Maximum speed is %2.0f mph in month %2.0f, year %1.0f.", wind_max,
index_maxmonth, index_maxyear);
这是什么打印: 12月,第5年最低时速为5英里/小时。 12月,第5年最高时速为12英里/小时。
答案 0 :(得分:1)
您必须初始化变量nrows
和ncols
。否则你正在使用垃圾值。
此外,您需要在循环体中{}
。
否则它每次只更改其值,并且您到达最后一个元素的索引。
*后来OP提到了从文件中读取。因此,从文件本身读取时不需要初始化部分。
答案 1 :(得分:0)
我认为问题在于使用“if”时范围是错误的。