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