测试结果:6124565327595原始————选择————:排序前12 45 65 32 75 95第1轮排序结果:95 45 65 32 75 12第2轮排序结果:95 75 65 32 45 12第3轮排序结果:95 75 65 32 45 12第4轮排序结果:95 75 65 45 32 12第5轮排序结果:95 75 65 45 32 12代码#include "stdio.h"#include "conio.h"void printArray(int a[],int n){ int i; for(i=0;i<n;i++) { printf("%2d ",a[i]); }}void swap(int *a,int *b){ int temp; temp=*a; *a=*b; *b=temp;}void selectSort(int a[],int n){ int i,j,k; for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) { if(a[k]<a[j]) { k=j; } } if(k!=i) { swap(&a[i],&a[k]); } printf("\n第%i轮排序结果:\n",i+1); printArray(a,n); }}main(){ int a[50]; int i,n=0; scanf("%d",&n); for(i=0;i<n;i++) { scanf("%d",&a[i]); } printf("\n\n原始————选择————:排序前\n"); printArray(a,n); selectSort(a,n); getch();}
#include<stdio.h>#include<stdlib.h>int main(){ int n,num[1000]; int i,j,t; scanf("%d",&n); for (i=0;i<n;i++) scanf("%d",&num[i]); for (i=0;i<n-1;i++) for (j=i+1;j<n;j++) if (num[i]<num[j]) { t=num[i]; num[i]=num[j]; num[j]=t; } for (i=0;i<n;i++) printf("%d ",num[i]); printf("\n"); system("pause"); return 0;} 以上是程序,c语言的……其中n是你说的N,num是数组。system("pause"); 不想加也可以……那是为了防止你看不到结果就结束了的……
#include<iostream> using namespace std; int main() { int N; cout<<"请输入你想要排序的数的个数:"<<endl; cin>>N; int arr[N]; cout<<"输入你想要排序的元素:"<<endl; for(int i=0; i<N; i++) { cin>>arr[i]; } for(int i=0; i<N-1; i++) { for(int j=i+1; j<N; j++) { if(arr[i]<arr[j]) { int temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } } } cout<<"排序后的数为:"<<endl; for(int i=0; i<N; i++) cout<<arr[i]<<'\t'; cout<<endl; return 0; }