这个简单排序程序运行时只能交换最后两个数,怎么回事?该怎么改呢?
程序代码:
#include <stdio.h> #include <string.h> #include <stdlib.h> void input(double r[] ,int n) {printf("请输入%d个数\n",n); int i; for(i=0;i<n;i++) scanf(" %lf",&r[i]); } void output(double r[] ,int n) {int i; for(i=0;i<n;i++) {printf (" %lf",r[i]); if((i+1)%5==0) { printf("\n"); } } } void sort3(double r[],int n) {int i,j,k; double l; for(i=0;i<n-1;i++) k=i; for(j=i+1;j<n;j++) { if(r[j]<r[k]) k=j;} if (i!=k) {l=r[k]; r[k]=r[i]; r[i]=l;} } int main() { double a[10] ; int d[]={5,3,1}; input(a,10) ; sort3(a,10) ; printf("排好的序列:\n") ; output(a,10) ; return 0 ; }