程序会运行,可是有一些数据代入是错误的,请大神们指点一二!如下所示

问题描述
  给定 N 个整数,请你找出这 N 个数中最大的那个和最小的那个。
输入格式
  第一行包含一个正整数 N 。(1 ≤ N ≤ 10000)。
  第二行为 N 个用空格隔开的整数,每个数的绝对值不超过 1000000。
输出格式
  输出仅一行,包含两个整数 x,y,x 表示 N 个数中的最大值,y 表示 N 个数中的最小值。x,y 之间用一个空格隔开。
样例输入
4
2 0 1 2
样例输出
2 0
#include
int main()
{
int i,n,max,min;
int a[10000];
scanf("%d",&n);
for(i=0;i scanf("%d",&a[i]);
max=min=a[0];
for(i=1;i {
if(a[i]>max)
max=a[i];
if(a[i]<max)
min=a[i];
}
printf("%d %d",max,min);
return 0;
}
评测点序号 评测结果 得分 CPU使用 内存使用 下载评测数据
1 正确 10.00 0ms 1.628MB 输入 输出
2 正确 10.00 0ms 1.628MB VIP特权
3 错误 0.00 0ms 1.628MB VIP特权
4 错误 0.00 0ms 1.628MB VIP特权
5 错误 0.00 0ms 1.628MB VIP特权
6 错误 0.00 0ms 1.628MB VIP特权
7 错误 0.00 0ms 1.628MB VIP特权
8 错误 0.00 0ms 1.628MB VIP特权
9 错误 0.00 0ms 1.628MB VIP特权
10 错误 0.00 15ms 1.628MB VIP特权

c

3个回答

 if(a[i]<min)//修改
min=a[i];
qq_29754969
天狼666 谢谢啊,已修改
4 年多之前 回复

绝对值不超过 1000000,你的代码少了一个零。
但如果是 1000000,估计你就不能定义成数组了,必须动态分配内存。这也是这个题目的一个要点吧!

//除非所有数据都相同,否则最大和最小值是互斥的,所以两个 if 可以合并为一个 if ...else if...
for(i=1;i if(a[i]>max)
max=a[i];
else if(a[i]<min)//当然,首先此处的错误要修正 max 改成 min
min=a[i];
}

qq_29754969
天狼666 谢谢啊,已修改
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问