最近练习C语言函数,用函数进行选择排序
1 #include <stdio.h> 2 3 int main() 4 { 5 void sort(int array[],int n); 6 int i,slist[10]; 7 8 for (i = 0; i<10 ;i++) 9 { 10 scanf("%d ",&slist[i]); 11 } 12 sort(slist,10); 13 printf("The sorted array:\n"); 14 for(i= 0;i <10;i++) 15 { 16 printf("%3d",slist[i]); 17 } 18 printf("\n"); 19 return (0) ; 20 } 21 22 void sort(int array[],int n) 23 { 24 int i,j,k,m; 25 for(i = 0;i < n-1;i++) 26 { 27 k = i; 28 for(j = i+1;j < n; j++) 29 { 30 if(array[j]<array[k]) 31 { 32 k = j; 33 } 34 } 35 m = array[i]; 36 array[i] = array[k]; 37 array[k] = m; 38 } 39 }
调试运行后,输入完数组后总要再输入一个数才能显示结果。在网上找到选择排序的方法,发现代码内容一样就是找不到错误。经过多番询问,得知scanf %d后不需要加空格
#include <stdio.h> int main() { void sort(int array[],int n); int i,slist[10]; for (i = 0; i<10 ;i++) { scanf("%d",&slist[i]); } sort(slist,10); printf("The sorted array:\n"); for(i= 0;i <10;i++) { printf("%3d",slist[i]); } printf("\n"); return (0) ; } void sort(int array[],int n) { int i,j,k,m; for(i = 0;i < n-1;i++) { k = i; for(j = i+1;j < n; j++) { if(array[j]<array[k]) { k = j; } } m = array[i]; array[i] = array[k]; array[k] = m; } }
去掉scanf 里面的空格
时间: 2024-10-08 03:31:10