-
题目描述:
-
输入N个(N<=10000)数字,求出这N个数字中的最大值和最小值。每个数字的绝对值不大于1000000。
-
输入:
-
输入包括多组测试用例,每组测试用例由一个整数N开头,接下去一行给出N个整数。
-
输出:
-
输出包括两个整数,为给定N个数中的最大值与最小值。
-
样例输入:
-
5 1 2 3 4 5 3 3 7 8
-
样例输出:
-
5 1 8 3
代码:
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
int main(){
int n,i,a[10010],max,min;
while(scanf("%d",&n)!=EOF){
for(i=0;i<n;i++){
cin>>a[i];
}
max=a[0];min=a[0];
for(i=1;i<n;i++){
if(a[i]>max)
max=a[i];
if(a[i]<min)
min=a[i];
}
printf("%d %d\n",max,min);
}
}
错误代码:
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
int main(){
int n,i,a[10010],max,min;
while(scanf("%d",&n)!=EOF){
for(i=0;i<n;i++){
cin>>a[i];
}
max=a[0];min=a[0];
for(i=1;i<n;i++){
if(a[i]>max)
max=a[i];
if(a[i]<min)
min=a[i];
}
cout<<max<<' '<<min;
}
}
其他人代码:
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int N,a[10010];
int main()
{
while(scanf("%d",&N)!=EOF)
{
for(int i=0;i<N;i++)
{
scanf("%d",&a[i]);
}
sort(a,a+N);
printf("%d %d\n",a[N-1],a[0]);
}
return 0;
}
这道题的错误出现在输出的格式上,即每输出一组最大最小值就需要换行