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