摘要:序列中刪除指定數(shù)字程序創(chuàng)建一個數(shù)組輸入一個整數(shù)輸入個整數(shù)到數(shù)組里多組輸入輸入你想要刪除的數(shù)字遍歷數(shù)組如果不是我們想除的值,進(jìn)入語句為什么要這么寫,接著往下看自己給自己賦值,賦
#include int main(){ int arr[30] = { 0 };// 創(chuàng)建一個數(shù)組 int n = 0; int z = 0; scanf("%d", &n);// 輸入 一個整數(shù) n int i = 0; for (i = 0; i < n; i++)// 輸入 n(n<=30) 個整數(shù) 到數(shù)組 arr里 { scanf("%d", &arr[i]);// 多組輸入 } scanf("%d",&z);// 輸入你想要刪除的數(shù)字 int j = 0; for (i = 0; i < n; i++)// 遍歷數(shù)組 { if (arr[i] != z) // 如果不是我們想除的值,進(jìn)入 if 語句 // 為什么要這么寫,接著往下看 { arr[j++] = arr[i];// 自己 給自己賦值,賦完之后 j++,i 再 ++,這樣就能確保不會改變原有數(shù)據(jù)的順序 } } for (i = 0; i < j; i++)// 打印數(shù)組(注意 i < j,等我下面講解,你就直接妙在那了 ) { printf("%d ", arr[i]); } return 0;}
?
for (i = 0; i < j; i++) // arr[j] 存放 j 個 元素, 下標(biāo)為 0 ~ j -1 細(xì)品!!! { printf("%d ", arr[i]); } return 0;}
?
?
?
#include int main(){ int arr[30] = { 0 };// 創(chuàng)建一個數(shù)組 int n = 0; int i = 0; int j = 0; scanf("%d", &n);// 輸入一個整數(shù) n for (i = 0; i < n; i++) // 輸入 n 個整數(shù)到 數(shù)組里 { scanf("%d", &arr[i]); // 多組輸入 } for (i = 1; i < n; i++) // 作用: 我們只需要 它的 第一個元素 { // 有序數(shù)組: 升序 降序 // 升序: 后一個元素 比 前一個元素 大,以此類推 if (arr[i] >= arr[i - 1]) { for (j = i; j < n; j++)//遍歷數(shù)組,i = 1 方便 比較大小,來判斷 升序 { if (arr[j] < arr[j - 1])// 如果在 升序中 出現(xiàn)這種 相反情況的,那么它肯定不是升序數(shù)組,也不是降序 { printf("unsorted/n");// 所以輸出這條 unsorted 無序的 goto end;// 通過goto 直接跳到 return 0,程序結(jié)束 // 當(dāng)然 你也可以寫 return 0; 也是一樣 } } if (j == n)// 當(dāng)遍歷 數(shù)組 時,意味著 數(shù)組 為升序 { printf("sorted/n");// sorted 有序的 goto end; } } // 降序 第二個元素 小于 第 一個元素,以此類推 else if (arr[i] <= arr[i - 1])// else if 是防止 你們有人使用break,如果是 if 的話, 跳出最近的循環(huán),會繼續(xù)進(jìn)行判斷,會出現(xiàn)意外情況,明明 是無序的,卻輸出 有序的(降序的) { for (j = i; j < n; j++)//遍歷數(shù)組,i = 1 方便 比較大小,來判斷 降序 { if (arr[j] > arr[j - 1])// 如果在 降序中 出現(xiàn)這種 相反情況的,那么它肯定不是降序數(shù)組,也不是升序 { printf("unsorted/n");// 所以 輸出 unsorted 無序的 goto end; } } if (j == n)// 當(dāng)遍歷 數(shù)組 時,意味著 數(shù)組 為降序 { printf("sorted/n");// sorted 有序的 goto end; } } }end: return 0;}
?
#include #include int compare(const void* e1, const void* e2){ return *(int*)e1 - *(int*)e2;}int main(){ int n = 0; int m = 0; int a1[30] = { 0 }; int a2[30] = { 0 }; scanf("%d %d", &n, &m);// 輸出兩個整數(shù) n 和 m int i = 0; for (i = 0; i < n; i++)// 輸入 n 個整數(shù) 放進(jìn) 數(shù)組 a1 { scanf("%d", &a1[i]); } for (i = 0; i < m; i++)// 輸入 m 個整數(shù) 放進(jìn) 數(shù)組 a2 { scanf("%d", &a2[i]); } for (i = 0; i < m; i++)// 數(shù)組a1[n] 最后一個元素的下標(biāo)為 n-1,所以我們追加數(shù)組,應(yīng)該從下標(biāo) n 開始賦值 追加數(shù)組 a2 { a1[n+i] = a2[i]; } qsort(a1, n + m, sizeof(int), compare);// 這里使用的qsort 進(jìn)行排序 注意添加頭文件 stdlib,h for (i = 0; i < (n + m); i++)//最后輸出一下數(shù)組a1就行了,因?yàn)?我們是把 a2 追加 給了 a1 { printf("%d ", a1[i]); } return 0;}
如果大家有什么新思維,可以在下方評論。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/119680.html
摘要:棧被稱為一種后入先出的數(shù)據(jù)結(jié)構(gòu)。散列使用的數(shù)據(jù)結(jié)構(gòu)叫做散列表。這些操作需要求助于其他數(shù)據(jù)結(jié)構(gòu),比如下面介紹的二叉查找樹。 前言 在過去的幾年中,得益于Node.js的興起,JavaScript越來越廣泛地用于服務(wù)器端編程。鑒于JavaScript語言已經(jīng)走出了瀏覽器,程序員發(fā)現(xiàn)他們需要更多傳統(tǒng)語言(比如C++和Java)提供的工具。這些工具包括傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu)(如鏈表,棧,隊(duì)列,圖等),...
摘要:排序代碼實(shí)現(xiàn)和一概念排序算法的穩(wěn)定性穩(wěn)定性穩(wěn)定排序算法會讓原本有相等鍵值的紀(jì)錄維持相對次序。交換的結(jié)果導(dǎo)致結(jié)點(diǎn)的值變化了,重復(fù),,的操作,直到?jīng)]有孩子時跳出代碼實(shí)現(xiàn)構(gòu)建初始堆堆排序算法思想大頂堆舉例將待排序的序列構(gòu)造成一個大頂堆。 排序 代碼實(shí)現(xiàn):Java 和 Python 一、概念 1.1 排序算法的穩(wěn)定性 穩(wěn)定性:穩(wěn)定排序算法會讓原本有相等鍵值的紀(jì)錄維持相對次序。也就是如果一個排序...
摘要:排序代碼實(shí)現(xiàn)和一概念排序算法的穩(wěn)定性穩(wěn)定性穩(wěn)定排序算法會讓原本有相等鍵值的紀(jì)錄維持相對次序。交換的結(jié)果導(dǎo)致結(jié)點(diǎn)的值變化了,重復(fù),,的操作,直到?jīng)]有孩子時跳出代碼實(shí)現(xiàn)構(gòu)建初始堆堆排序算法思想大頂堆舉例將待排序的序列構(gòu)造成一個大頂堆。 排序 代碼實(shí)現(xiàn):Java 和 Python 一、概念 1.1 排序算法的穩(wěn)定性 穩(wěn)定性:穩(wěn)定排序算法會讓原本有相等鍵值的紀(jì)錄維持相對次序。也就是如果一個排序...
閱讀 3701·2021-11-11 11:00
閱讀 2179·2021-10-08 10:05
閱讀 2671·2021-10-08 10:04
閱讀 3204·2021-09-30 09:48
閱讀 3763·2021-09-27 14:10
閱讀 1704·2021-09-09 09:33
閱讀 2100·2019-08-30 15:55
閱讀 1601·2019-08-30 13:53