/*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是終止符產生的。