C语言 找出数组的最小值,交换到第1个位置

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

 

posted @ 2022-04-05 21:07  程序员小贤  阅读(1372)  评论(0)    收藏  举报