该程序用于查找所有城市的平均温度,但结果没有意义(这是错误的)
我曾尝试将程序分成多个函数以更好地理解,但这并没有太大帮助。
#define amount_cities 5
#define amount_temp 3 // temp = temperature
int mintemp(int mas[amount_cities][amount_temp], int *index);
int maxtemp(int mas[amount_cities][amount_temp], int *index);
float avgtemp(int mas[amount_cities][amount_temp]);
int main(){
int arr_temp[amount_cities][amount_temp];
int i, j, ind;
// Set a temperatures for each city
for(i = 0; i < amount_cities; ++i){
printf("Temperature - city %d \n", i);
for(j = 0; j < amount_temp; ++j){
printf("Temperature %d - ", j+1);
scanf("%d", &arr_temp[i][j]);
}
}
for(i = 0; i < amount_cities; ++i){
printf("Temperature - city %ds \n", i);
for(j = 0; j < 3; ++j){
printf(" %d.- %d", j+1, arr_temp[i][j]);
}
printf("\n");
}
printf("Minimal temperature = %d ", mintemp(arr_temp, &ind));
printf("for city %d \n", ind);
printf("Maximal temperature = %d ", maxtemp(arr_temp, &ind));
printf("City %d \n", ind);
printf("Average temperature = %.2f\n", avgtemp(arr_temp));
return 0;
}
int mintemp(int mas[amount_cities][amount_temp], int *index){
int m, n, min_t;
min_t = mas[0][0];
*index = 0;
for(m = 0; m < amount_cities; ++m){
for(n = 0; n < amount_temp; ++n){
if(mas[m][n] < min_t){
min_t = mas[m][n];
*index = m;
}
}
}
return min_t;
}
int maxtemp(int mas[amount_cities][amount_temp], int *index){
int m, n, max_t;
max_t = mas[0][0];
for(m = 0; m < amount_cities; ++m){
for(n = 0; n < amount_temp; ++n){
if(mas[m][n] > max_t){
max_t = mas[m][n];
*index = m;
}
}
}
return max_t;
}
float avgtemp(int mas[amount_cities][amount_temp]){
int m, n;
float average_t = 0.0; // Average temperature
for(m = 0; m < amount_cities; ++m){
for(n = 0; n < amount_temp; ++n){
average_t += mas[m][n];
}
}
average_t /= amount_cities*mas[m][n];
return average_t;
}
我希望输出为33.00,但平均温度却改为30.00。