编程实现:从键盘上接收10个整数,并对其进行排序(要求排成升序)。

用c语言编程
2024-11-24 12:40:55
推荐回答(3个)
回答1:

【程序37】
题目:对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{
printf("a[%d]=",i);
scanf("%d",&a[i]);}
printf("\n");
for(i=0;iprintf("%5d",a[i]);
printf("\n");
/*sort ten num*/
for(i=0;i{min=i;
for(j=i+1;jif(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;iprintf("%5d",a[i]);
}

回答2:

用交换排序就OK了

回答3:

//---------------------------------------------------------------------------

#include
void sort(int *a,int b,int e)
{
int l=b,r=e,k=a[b];
if (b while (l {
while (lk)
--r;
if (l a[l++]=a[r];
}
while (l ++l;
if (l a[r--]=a[l];
}
}
a[l]=k;
sort(a,b,l-1);
sort(a,l+1,e);
}
}
int main(void)
{
int i,a[10];

for (i = 0; i < 10; i++) {
scanf("%d",&a[i]);
}
sort(a,0,9);
for (i = 0; i < 10; i++) {
printf("%d ",a[i]);
}

return 0;
}
//---------------------------------------------------------------------------