(由ai出題))
#define _CRT_SECURE_NO_WARNINGS#include stdio.h//第一題 數(shù)組逆序輸出/*//輸入 5 個(gè)整數(shù)存進(jìn)數(shù)組然后倒著輸出。////輸入1 2 3 4 5//輸出5 4 3 2 1int main(){//輸入五個(gè)數(shù)int arr[5] { 0 };int i 0;for (i 0; i 5; i){scanf(%d,arr[i]);}//倒著輸出for (i4;i0;i--){printf(%d ,arr[i]);}return 0;}*///第二題 求最大值和最小值順便記錄下標(biāo)////輸入 10 個(gè)數(shù)輸出最大值、最小值以及它們分別是第幾個(gè)數(shù)。//輸入3 7 2 9 5 1 8 4 6 0//輸出最大值 9 在第 4 個(gè)最小值 0 在第 10 個(gè)//考點(diǎn)先把 max a[0] 而不是 max 0否則全是負(fù)數(shù)就錯(cuò)了這是高頻坑。/*int main(){int arr[10] {0};int i 0;for (i 0; i 10; i){scanf(%d,arr[i]);}int max arr[0];int min arr[0];//最大值for (i 0; i 10; i){if(arr[i]max){max arr[i];}}printf(最大值是%d,, max);for(i 0; i 10; i){if (max arr[i]){printf(在第%d位\n, i1);}}//最小值for (i 0; i 10; i){if (arr[i] min){min arr[i];}}printf(最小值是%d,, min);for (i 0; i 10; i){if (min arr[i]){printf(在第%d位\n, i 1);}}return 0;}*///補(bǔ)充/* 在前面可以簡化兩個(gè)循環(huán)int maxIndex 0; // 先假設(shè)第 0 個(gè)最大for (i 1; i 10; i) // 從 1 開始比arr[0] 已經(jīng)是候選了{(lán)if (arr[i] arr[maxIndex]){maxIndex i; // 只記位置值隨手就能拿到}}printf(最大值是%d在第%d位\n, arr[maxIndex], maxIndex 1);*///第三題//數(shù)組求和與平均值//輸入 8 個(gè)整數(shù)求總和與平均值保留兩位小數(shù)。//考點(diǎn)double 除法前要轉(zhuǎn)型 sum / 8.0直接 sum / 8 會(huì)得到整數(shù)。/*int main(){int arr[8] { 0 };int i 0;for (i 0; i 8; i){scanf(%d, arr[i]);}int sum 0;for (i 0; i 8; i){sum arr[i];}printf(%d\n,sum);printf(%.2lf,sum/8.0);return 0;}*///第四題//4. 統(tǒng)計(jì)奇偶個(gè)數(shù)//輸入 10 個(gè)整數(shù)分別統(tǒng)計(jì)奇數(shù)和偶數(shù)各多少個(gè)并把奇數(shù)、偶數(shù)分別輸出。//考點(diǎn)a[i] % 2 0以及邊遍歷邊輸出。/*int main(){int arr[10] {0};int i 0;int ji 0;int ou 0;for (i 0; i 10; i){scanf(%d,arr[i]);if (arr[i] % 2 0){ou;}else{ji;}}printf(偶數(shù)有%d個(gè):, ou);for (i 0; i 10; i) // 第一遍專門撈偶數(shù){if (arr[i] % 2 0)printf(%d , arr[i]);}printf(\n奇數(shù)有%d個(gè):, ji);for (i 0; i 10; i) // 第二遍專門撈奇數(shù){if (arr[i] % 2 ! 0)printf(%d , arr[i]);}return 0;}*///5. 查找某個(gè)數(shù)//輸入 10 個(gè)數(shù)再輸入一個(gè)目標(biāo)值問它是否在數(shù)組里、在第幾個(gè)位置只找第一次出現(xiàn)的。//考點(diǎn)設(shè)一個(gè)標(biāo)志變量 flag找到就跳出。///*int main(){int arr[10] { 0 };int i 0;int target 0; // 要找的數(shù)起個(gè)不混淆的名字int found 0; // 標(biāo)志變量0還沒找到1找到了for (i 0; i 10; i){scanf(%d,arr[i]);}printf(請(qǐng)輸入flag的數(shù));scanf(%d, target);for (i 0; i 10; i){if (arr[i] target){found 1; // 立個(gè)flag找到了printf(%d這個(gè)數(shù)在數(shù)組里在第%d個(gè)\n, target, i 1);break; // 只找第一個(gè)找到就走}}if (found 0) // 循環(huán)走完了found還是0 → 全程沒找到{printf(%d不在數(shù)組里\n, target);}return 0;}*///三、稍微動(dòng)腦練交換 雙下標(biāo)//6. 數(shù)組元素左移一位//把數(shù)組里所有元素整體向前移一位第一個(gè)元素移到末尾。////plaintext////輸入1 2 3 4 5//輸出2 3 4 5 1//考點(diǎn)先存住 a[0]再從前往后挪最后把存的值放末尾。///*int main(){int arr[100];int n 0;int i 0;printf(輸入數(shù)組的長度:);scanf(%d, n); // \n 刪掉for (i 0; i n; i)scanf(%d, arr[i]);int b arr[0]; // 先存第一個(gè)for (i 0; i n; i){if (i n - 1)arr[i] arr[i 1]; // 從前往后挪左移正確方向elsearr[n - 1] b; // 存的值補(bǔ)到末尾printf(%d , arr[i]);}return 0;}*///7. 冒泡排序從大到小?//輸入 10 個(gè)數(shù)排序后輸出從大到小。//考點(diǎn)雙重 for 循環(huán) 交換 temp這題你后面考試一定會(huì)遇到值得現(xiàn)在就啃。/*int main(){int a[10] { 0 };int i 0;for (i 0;i10;i){scanf(%d,a[i]);}int j 0;int temp 0;for (i 0; i 9; i) // 一共跑幾趟{(lán)for (j 0; j 9-i; j) // 這一趟比幾次{if (a[j] a[j 1]){temp a[j]; // 先把 a[j] 存進(jìn)杯子a[j] a[j 1]; // 后面的倒進(jìn)前面a[j 1] temp; // 杯子里的倒給后面// 三行交換}}}for (i 0; i 10; i){printf(%d , a[i]);}return 0;}*///四、挑戰(zhàn)題做出來不超綱但要想//8. 找出出現(xiàn)次數(shù)最多的數(shù)//輸入 10 個(gè) 0~9 之間的整數(shù)找出出現(xiàn)次數(shù)最多的那個(gè)數(shù)字。////plaintext////輸入1 3 3 5 3 7 3 9 2 0//輸出3 出現(xiàn)了 4 次//提示開一個(gè) int count[10] { 0 }; 用輸入的數(shù)字當(dāng)下標(biāo)去計(jì)數(shù)這叫計(jì)數(shù)數(shù)組非常經(jīng)典的技巧只用到數(shù)組不涉及指針。//#define _CRT_SECURE_NO_WARNINGS#include stdio.hint main(){int count[10] { 0 }; // 10 個(gè)計(jì)數(shù)器count[0]~count[9]全清零int num 0; // 臨時(shí)存放每次讀進(jìn)來的數(shù)字int i 0;int maxIndex 0; // 記錄出現(xiàn)次數(shù)最多的數(shù)字先假設(shè)是 0printf(請(qǐng)輸入10個(gè)0~9之間的整數(shù):\n);// 第一步邊讀邊計(jì)數(shù)for (i 0; i 10; i){scanf(%d, num); // 讀到比如 3count[num]; // count[3] 加 1 —— 核心就這一句}// 第二步在 count 數(shù)組里找最大值的位置for (i 1; i 10; i) // 從 1 開始因?yàn)?count[0] 已經(jīng)是候選了{(lán)if (count[i] count[maxIndex]){maxIndex i; // 誰出現(xiàn)得多冠軍下標(biāo)搬到誰家}}// 第三步輸出// maxIndex 就是那個(gè)出現(xiàn)最多的數(shù)字因?yàn)樗瑫r(shí)是下標(biāo)printf(%d 出現(xiàn)了 %d 次\n, maxIndex, count[maxIndex]);return 0;}