一個小程序的調試-----maxmin(),input()-----問題:爲什麼會有min會爲0

/*corrected code*/

 

#include <iostream>
#define LENGTH 100
using namespace std;

int input(int a[]);
int maxmin(int a[],int length);

int main(){
        int a[LENGTH]={0};
        int length;
        length=input(a);
        maxmin(a,length);
        return 0;
}

int input(int a[]){
                int i;
                cout<<"input the number:"<<endl;
                for( i=0;i<LENGTH;i++){
                        if(cin.fail())
                        return i-1;
                        else cin>>a[i];
                }
}

int maxmin(int a[],int length){
        int max=a[0],min=a[0];
        for(int j=0;j<length;j++ ){
                if(max<a[j])    max=a[j];
                if(min>a[j])    min=a[j];
        }
        cout<<"max is:"<<max<<endl;
        cout<<"min is:"<<min<<endl;
        return 0;
}
~                                                                              
~                                                                              
~          

/*uncorrected code*/

 

int
 input(
int
 a[]){
cout
<< " input the number: " << endl;
for ( int i = 0 ;i < LENGTH;i ++ ){
cin
>> a[i];
}
return i; ////// //這個i必須返回,因爲這樣纔可以得到長度,但又不能用全局變量,我該怎麼辦?
}
這裏我把int i;放在了for循環外面,然後在返回值上減一,杜絕了輸入一個值,結果length=2的情況,這多出來的1是終止符產生的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章