用c语言编程:键盘上输入N个整数,使该数组中的数按照从小到大的次序排列(选择法排序)

如题所述

#include "stdio.h"

#define N 10

int main(int argc,char *argv[]){

int a[N],i,j,k;

printf("Please enter %d integer(s)...\n",N);

for(i=0;i<N;scanf("%d",a+i++));//输入

for(i=0;i<N;i++){//选择法排序

for(k=i,j=k+1;j<N;j++)

if(a[k]>a[j])

k=j;

if(k!=i)

j=a[k],a[k]=a[i],a[i]=j;

printf("%d ",a[i]);

}

printf("\n");

return 0;

}

代码图片和运行样例:

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-06-17
#include <stdio.h>
main()
{
int a[10],i,j,t;
printf("Please input 10 numbers: ");/*输入源数据*/
for(i=0;i<10;i++)
scanf("%d",&a[i]); /*排序*/
for(j=0;j<9;j++) /*外循环控制排序趟数,n个数排n-1趟*/
for(i=0;i<9-j;i++) /*内循环每趟比较的次数,第j趟比较n-j次*/
if(a[i]>a[i+1])
/*相邻元素比较,逆序则交换*/
{ t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}/*输出排序结果*/
printf("The sorted numbers: ");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
}
相似回答