获取城市平均温度

时间:2019-09-07 15:28:08

标签: c function calculation

该程序用于查找所有城市的平均温度,但结果没有意义(这是错误的)

我曾尝试将程序分成多个函数以更好地理解,但这并没有太大帮助。

#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。

0 个答案:

没有答案