2 qq 29754969 qq_29754969 于 2016.01.27 20:23 提问

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

问题描述
  给定 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特权

3个回答

qq_27183003
qq_27183003   Ds   Rxr 2016.01.27 20:41
 if(a[i]<min)//修改
min=a[i];
qq_29754969
qq_29754969 谢谢啊,已修改
接近 2 年之前 回复
lm_whales
lm_whales   Rxr 2016.01.28 00:44

//除非所有数据都相同,否则最大和最小值是互斥的,所以两个 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
qq_29754969 谢谢啊,已修改
接近 2 年之前 回复
91program
91program   Ds   Rxr 2016.01.27 21:26

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!