2017-08-08 70 views
-2

源代碼:爲什麼我的最小值顯示一些垃圾值?

int main(void) { 

    double values[10]; 
    int size = 5; 
    double max_val = values[0]; 
    double min_val = values[0]; 

    printf("Enter 10 double values for the array\n"); 
    for (int i = 0; i < size; i++) { 
     scanf("%lf", &values[i]); 
    } 

    for (int x = 0; x < size; x++) { 
     if (values[x] > max_val) { 
      max_val = values[x]; 
     } 
     if (values[x] < min_val) { 
      min_val = values[x]; 
     } 
    } 

    printf("Maximum value: %.2lf\n", max_val); 
    printf("Miniimum value: %.2lf\n", min_val); 
    return 0; 

} 

用於陣列

10.4 
56.7 
21.1 
0.3 
4.8 


Maximum value: 56.70 
Minimum value: -92559631349317830736831783200707727132248687965119994463780864.00 
+0

您在讀取數據之前設置了'max_val'和'min_val'。 –

回答

2
double max_val = values[0]; 
double min_val = values[0]; 

您已分配垃圾值MAX_VAL和MIN_VAL,輸入10個值作爲值[0]不被分配爲任意值這一點

您應該在for循環中輸入後移動此作業

+0

好的,謝謝!我應該在第一個for循環之後分配max_val和min_val –