本关任务:找出数组的最小值,交换到第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 }
