用选择法对输入的10个整数排序

如题所述

#include<stdio.h>
int main()
{int i,j,k,t,a[10];
 for(i=0;i<10;i++) //输入10个整数 
   scanf("%d",&a[i]);
 for(i=0;i<9;i++) //排序10个数,需要9轮 
 {k=i; //当前最小值的编号 
  for(j=i+1;j<10;j++) //扫描后续所有元素 
     if(a[j]<a[k])k=j; //如后面的元素更小,就更新最小编号 
  t=a[i]; a[i]=a[k]; a[k]=t; //把最小的元素交换到第 i 位 
 }
 for(i=0;i<10;i++) //输出排好序的元素值 
   printf("%d ",a[i]);
 return 0;
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-02-28
c语言代码加下

#include<stdio.h>

int main()
{
int a[10],i,j,t;//定义数组; 
for(i=0;i<10;i++){
scanf("%d",&a[i]);//给数组赋值; 
}
for(i=0;i<9;i++)//10个数,进行9轮比较; 
for(j=0;j<10-i;j++){//第一个数比较9次,依次递减; 
if(a[j]>a[j+1]) {//交换值; 
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
for(i=0;i<10;i++){
printf("%d\n",a[i]);//输出数组的值; 
}

return 0;
}
第2个回答  2022-05-27

选择法排序的程序如下:

很简单的。

第3个回答  2019-02-28

文字输入超过字数限制,见图片吧

第4个回答  2019-02-28
#include <stdio.h> main() { void sort(int *p,int n); int *q,i,a[10]; q=a; for(i=0;i<10;i++,q++) scanf("%d",q); q=a; sort(q,10); for(q=a;q<(a+10);q++) printf("%d\t",*q);/*你的输出结果不明显*/ printf("\n"); getch(); /*让程序停留一下,以便观察结果*/ } void sort(int *p,int n) { int i,j,temp,k; for(i=0;i<n-1;i++)/*此处你应该忘了花括号*/ { k=i; for(j=i+1;j<n;j++) if(*(p+j)>*(p+k))k=j; { temp=*(p+i); *(p+i)=*(p+k); *(p+k)=temp; } } }
相似回答