在c语言中求10个数中最大最小值,下面的程序有什么地方不对#include <stdio.h> int main() { int max,min

#include <stdio.h>
int main()
{
int max,min,x[10],i;
max=0,min=0;
for(i=1;i<=10;i++)
for(i=1;i<=10;i++)
{
printf("x[i]=",x[i]),
scanf("%d",&x[i]);
}
max=max>x[i]?max:x[i],
min=min<x[i]?min:x[i];
printf("max=%d,min=%d\n",max,min);
return 0;
}

x[10]元素是从x[0]到x[9]
你看你的循环
出现了x[10]数组超界了
#include <stdio.h>
int main()
{
int max,min,x[10],i;
max=0,min=0;
//只用一层循环就行了 for(i=0;i<10;i++)//
for(i=0;i<10;i++)//从0到9
{
printf("x[%d]=",i);//分号
scanf("%d",&x[i]);
}
max=min=x[0];//赋值完数组,设max,min为第一个元素值,
for(i=1;i<10;i++)//再找最大最小值。
{
max=max>x[i]?max:x[i],
min=min<x[i]?min:x[i];
}
printf("max=%d,min=%d\n",max,min);
return 0;
}追问

出错如果输入的10个数里没有0,但结果还是min=0

追答

不可能的哦

max=min=x[0];//赋值完数组,设max,min为第一个元素值,

我专门加了这句的,

你直接COPY去试下就知道了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-27
#include <stdio.h>
int main()
{
int max,min,x[10],i;
for(i=0;i<10;i++)
{
printf("x[%d]=",i),
scanf("%d",&x[i]);
if(i==0) max=min=x[0]; //必须初始化在里面
else
{
max=max>x[i]?max:x[i];
min=min<x[i]?min:x[i];
}
}

printf("max=%d,min=%d\n",max,min);
return 0;
}追问

这个不对,如果想x[0]=10,x[2]=9,x[3]=8......x[9]=1
则结果是max=9,min=0

相似回答
大家正在搜