一个C语言简单问题

来源:百度知道 编辑:UC知道 时间:2024/05/06 23:35:02
/*代码(1)*/
#include<stdio.h>
void main()
{
int a[11],i,n,temp,min;
for(i=1;i<=10;i++)
{
scanf("%d",&a[i]);
}
for(i=1;i<=9;i++)
{
min=i;
for(n=i+1;n<=10;n++)
{
if(a[min]>a[n])
min=n;
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
printf("%5d ",a[i]);
}
printf("%5d \n",a[10]);
}

/*代码(2)*/
#include<stdio.h>
void main()
{
int a[11],i,n,temp;
for(i=1;i<=10;i++)
{
scanf("%d",&a[i]);
}
for(i=1;i<=9;i++)
{
for(n=i+1;n<=10;n++)
{
if(a[i]>a[n])
{
temp=a[i];
a[i]=a[n];
a[n]=temp;
}
}
printf("%5d ",a[i]);
}
printf("%5d \n",a[10]);
}
问题:这两段代码有无本质区别,1中多设了一个min变量,好还是不好,这两段代码哪个更好???

第一个是选择排序,第二个是冒泡排序 ,大家要看清楚啊。两个各有优点。当只是选择最大最少还是选择排序好。冒泡思路简单,而且从你打字的角度看冒泡还是有市场的,篇幅相对较少。在效果差不多的情况下我还是喜欢冒泡程序(2),其实这两个都是经典程序,都十分重要。要好好学^_^

多了min易于外部函数的引用.

我觉得是一样的,第一个更方便些,无所谓!

大质差不多,第一个还是好一些,因为便于省题,能让读者更清楚的了解,这段程序的作用。

这两段代码看起来都是实现冒泡排序功能,但是第1段代码,因为min这个变量的出现,却又使得最终的排序结果不正确。而第2段代码则可以成功排序数据。

晕 什么无本质区别 第一个是选择排序,第二个是冒泡排序 ,
选择排序快些