用选择法对十个整数排序 十个整数用cin输入
用选择法对10个整数递增排序。10个整数用scanf函数输入
选择法:假设集合A有n个元素,按以下算法完成递增排序:
(1)\x05以一个元素为基准,从一个方向开始扫描,比如以A[0]为基准,从左至右扫描;
(2)\x05用A[0]右边的A[1]-A[n-1]与A[0]比较,找出最小的元素,将其与A[0]交换;
(3)\x05将基准位置右移一位,即移到A[1],重复(1)和(2)动作,比如,以A[1]为基准,找出A[1]-A[n-1]中最小的,将其与A[1]交换。一直进行到基准位置移到数组最后一个元素时排序结束(此时基准左边所有元素均递增有序,而基准为最后一个元素,故完成排序)。
#include<stdio.h>
void main()
{
int i,j,min,temp,a[11];
printf("enter data;\n");
for(i=1;i<=10;i++)
{printf("a[%d]=",i);
scanf("%d",&a<i>);
}
printf("\n");
printf("The original numbers:\n");
for(i=1;i<=10;i++)
printf("%5d",a<i>);
printf("\n");
for(i=1;i<=9;i++)
{min=i;
for(j=i+1;j<=10;j++)
if(a[min]>a[j])min=j;
temp=a<i>;
a<i>=a[min];
a[min]=temp;
}
printf("\nThe sored numbers;\n");
for(i=1;i<=10;i++)
printf("%5d",a<i>);
printf("\n");
}
用cin输入呢 哥哥
using namespace std;
#define N 10
void main() { a[N],i,j,k;
for ( i=0;i<N;i++ ) cin>>a[i];
for ( i=0;i<N-1;i++ ) for ( j=i+1;j<N;j++ ) if ( a[i]>a[j] ) {k=a[i];a[i]=a[j];a[j]=k;}
for ( i=0;i<N;i++ ) cout<<a[i]<<" "; cout<<endl;
}