題目:從鍵盤輸入10個整數並保存到數組,要求找出最小數和它的下標,然后把它和數組中最前面的元素調換


 

這題考察的是讀者對於數組的基礎能力,考點為數組的下標和排序,難度為:1顆星

 

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int arry[10];    // 定義一個數組,用於存放
 5     int i;           // 臨時變量,用完遍歷        
 6     int temp;        // 臨時變量,作為第三方交換值使用
 7     int min;         // 用於存放最小值
 8     int tag;         // 用於存放找到的,最小的數的下標,並把它的下標給打上一個 Tag
 9 
10     // 通過循環將輸入的數存放到arrry[]數組內
11     for (i = 0; i < 10; i++)
12     {
13         printf("please input %d integer:", i + 1);
14         scanf_s("%d",&arry[i]);
15     }
16 
17     // 找出最小的數和它的下標
18     min = arry[0];                 // 假設最小值為第一個數
19     
20     // 通過循環遍歷
21     for (i = 1; i < 10; i++)      // 共有十個數,以第一個數為比較對象,總共比較九次,故比較次數 -1 次
22     {
23         if (arry[i] < min)         // 若遍歷中的數比前一個數小,則交換位置,並記錄下標
24         {
25             min = arry[i];         // 將小的數丟給變量 min
26             tag = i;               // 記錄下標
27         }
28     }
29 
30     // 將最小的數與數組最前面的數交換位置
31     temp = arry[tag];            // 此時,查找已經完成,我們已找到最小數的下標,通過下標直接將最小數丟給 臨時變量 temp
32     arry[tag] = arry[0];         // 此時,最小數的位置為空,我們通過第一個元素的下標,將其值丟給 最小數 的坑中
33     arry[0] = temp;               // 此時,第一個元素位置為空,我們將臨時變量 temp 中存放的最小值丟入第一個元素坑中
34 
35     // 遍歷輸出交換后的結果
36     for (i = 0; i < 10; i++)
37     {
38         printf("%d ",arry[i]);
39     }
40 
41     // 輸出交換前的數組,最小數和下標
42     printf("\n Tag = %d, Min = %d", tag, temp);
43 }

 

 


免責聲明!

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



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