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  }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM