退休人员招聘网站:C语言问题

来源:百度文库 编辑:神马品牌网 时间:2024/05/02 02:54:33
题目:对10个数进行排序
1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,
下次类推,即用第二个元素与后8个进行比较,并进行交换。
2.程序源代码:
#define N 10
main()
{int i,j,min,tem,a[N];
/*input data*/
printf("please input ten num:\n");
for(i=0;i<N;i++)
{
printf("a[%d]=",i);
scanf("%d",&a[i]);}
printf("\n");
for(i=0;i<N;i++)
printf("%5d",a[i]);
printf("\n");
/*sort ten num*/
for(i=0;i<N-1;i++)
{min=i;
for(j=i+1;j<N;j++)
if(a[min]>a[j]) min=j;
tem=a[i];
a[i]=a[min];
a[min]=tem;
}
/*output data*/
printf("After sorted \n");
for(i=0;i<N;i++)
printf("%5d",a[i]);
}
if(a[min]>a[j]) min=j;
这条代码是什么意思
能不能讲一下排序过程

#include<stdio.h>

#define N 10
void main( void )
{
int a[N]={0},NoteNum,temp;

printf("please input ten num:\n");

for (int i = 0; i < N; i++) //数组赋值
{
scanf("%d",&a[i]);
}

for ( int j = 0; j < N-1;++j)
{
NoteNum=j;
for ( i = j+1; i < N; ++i)
{
if ( a[i] < a[NoteNum] )//比较大小,把数组里最小的值的下标记下
{
NoteNum=i;
}
}
if(i != NoteNum)//比较完后把值给第j+1个数
{
temp=a[j];
a[j]=a[NoteNum];
a[NoteNum]=temp;
}
}

printf("\n");
for ( i = 0; i < N; i++)
{
printf("%d\n",a[i]);
}

return;

}

我又写了遍,你的东西太乱了。

tgfertertre