本關任務:找出數組的最小值,交換到第1個位置。並假設數組的長度不會超過30.
相關知識
比較第1個位置的元素和其它位置的元素。如果第1個比第2個大,就交換他們兩個,對后續的每一個元素做同樣的工作,最后第1個位置的元素應該會是最小的數。
編程要求
現在有長度為n個整型數組a,用交換法求數組中的最大值的解題思路如下:
第1步:如果 a[0]>a[1],a[0]和a[1]交換。
第2步:如果 a[0]>a[2],a[0]和a[2]交換。
……
第n-1步:如果 a[0]>a[n-1],a[0]和a[n-1]交換。
a[0]是最小的元素
1 #include <stdio.h> 2 int main() 3 { 4 int n; 5 scanf("%d",&n); 6 int arr[30]; 7 8 for(int i=0;i<n;i++){ 9 scanf("%d",&arr[i]); 10 } 11 12 for(int j=0;j<n;j++){ 13 if (arr[j]<arr[0]) { 14 int temp = arr[0]; 15 arr[0]=arr[j]; 16 arr[j]=temp; 17 } 18 19 20 } 21 22 for(int i=0;i<n;i++){ 23 printf("%d ",arr[i]); 24 25 } 26 27 28 29 30 31 32 33 return 0; 34 }
