2012-11-06 27 views
2

我必須使用定點控制重複來找到最大值和最小值。最大值和最小值 - 前哨控制重複

「最大」不能正常工作。任何人都可以幫我不好的事在我的代碼中的一些線索?

#include<stdio.h> 

int main() { 
    int number; 
    int min; 
    int max; 

    do { 
    printf("Enter a number (-1 to quit): "); 
    scanf("%d",&number); 
    if(number >= 0) { 
     if(number < min) 
     min = number; 
     if(number > max) 
     max = number; 

    } 
    else if(number < 1) 
     printf("the number is not valid \n"); 
    } 

    while(number != -1); 

    printf("Minimum=%d\n",min); 
    printf("Maximum=%d\n",max); 

    system("pause"); 

    return 0; 
} 
+0

什麼問題? – Marc

+2

你應該初始化局部變量。 – Mat

+1

嘗試設置你的最大值= 0 – Marc

回答

2

您的變量未初始化的值分別爲2674276,所有的數字都小,所以你分鐘被罰款

,但沒有數量比這個更大,所以這是你最大

需要初始化你分鐘,你的最大第一個數

我會做類似

max = -1 
min = -1 

do { 
    printf("Enter a number (-1 to quit): "); 
    scanf("%d",&number); 
    if(number >= 0) { 
     if(max == -1) 
     { 
     max = number //Means it's the first time so your max and min are the first number 
     min = number 
     } 
     else 
     { 
     if(number < min) 
      min = number; 
     if(number > max) 
      max = number; 

     } 
    } 
    else if(number < 1) 
     printf("the number is not valid \n"); 
    } 

    while(number != -1); 
+0

在分配值之前使用它們。這是最小值和最大值,但不是數字。 – Sebastian

+0

感謝您的解釋@Marc! – Nomics

+0

很高興幫助:) – Marc