为什么这道程序运行的结果不正确..

来源:百度知道 编辑:UC知道 时间:2024/06/08 19:32:25
#include "stdio.h"
void main()
{
int array[10];
int i,j,min,stmp;
for(i=0;i<10;i++) scanf("%d",&array[i]);
for(i=0;i<9;i++)
{
min=array[i];
for(j=i+1;j<10;j++)
if(min>array[j])
{
min=array[j];
stmp=array[i];
array[i]=array[j];
array[j]=stmp;
}
for(i=0;i<10;i++) printf("%d\n",array[i]);
}
}
这是一个网站教我的.
说是输入10个数从小到大重新输出. 可是输出的时候出现了问题...
顺序不是正确的... 为什么啊. 懂的帮小弟改一下哈..`

这样应该就可以了,应该是全部比较完后再输出的,由于原程序没有比较一次就输出一次,所以应该会出现和预期不一样的结果吧!

#include "stdio.h"
void main()
{
int array[10];
int i,j,min,stmp;
for(i=0;i<10;i++) scanf("%d",&array[i]);
for(i=0;i<9;i++)
{
min=array[i];
for(j=i+1;j<10;j++) {
if(min>array[j])
{
min=array[j];
stmp=array[i];
array[i]=array[j];
array[j]=stmp;
}
}
}
for(i=0;i<10;i++) printf("%d\n",array[i]);
}

如果还有问题欢迎和我进一步联系!谢谢!