摘要:序列中删除指定数字程序创建一个数组输入一个整数输入个整数到数组里多组输入输入你想要删除的数字遍历数组如果不是我们想除的值,进入语句为什么要这么写,接着往下看自己给自己赋值,赋
#include int main(){ int arr[30] = { 0 };// 创建一个数组 int n = 0; int z = 0; scanf("%d", &n);// 输入 一个整数 n int i = 0; for (i = 0; i < n; i++)// 输入 n(n<=30) 个整数 到数组 arr里 { scanf("%d", &arr[i]);// 多组输入 } scanf("%d",&z);// 输入你想要删除的数字 int j = 0; for (i = 0; i < n; i++)// 遍历数组 { if (arr[i] != z) // 如果不是我们想除的值,进入 if 语句 // 为什么要这么写,接着往下看 { arr[j++] = arr[i];// 自己 给自己赋值,赋完之后 j++,i 再 ++,这样就能确保不会改变原有数据的顺序 } } for (i = 0; i < j; i++)// 打印数组(注意 i < j,等我下面讲解,你就直接妙在那了 ) { printf("%d ", arr[i]); } return 0;}
for (i = 0; i < j; i++) // arr[j] 存放 j 个 元素, 下标为 0 ~ j -1 细品!!! { printf("%d ", arr[i]); } return 0;}
#include int main(){ int arr[30] = { 0 };// 创建一个数组 int n = 0; int i = 0; int j = 0; scanf("%d", &n);// 输入一个整数 n for (i = 0; i < n; i++) // 输入 n 个整数到 数组里 { scanf("%d", &arr[i]); // 多组输入 } for (i = 1; i < n; i++) // 作用: 我们只需要 它的 第一个元素 { // 有序数组: 升序 降序 // 升序: 后一个元素 比 前一个元素 大,以此类推 if (arr[i] >= arr[i - 1]) { for (j = i; j < n; j++)//遍历数组,i = 1 方便 比较大小,来判断 升序 { if (arr[j] < arr[j - 1])// 如果在 升序中 出现这种 相反情况的,那么它肯定不是升序数组,也不是降序 { printf("unsorted/n");// 所以输出这条 unsorted 无序的 goto end;// 通过goto 直接跳到 return 0,程序结束 // 当然 你也可以写 return 0; 也是一样 } } if (j == n)// 当遍历 数组 时,意味着 数组 为升序 { printf("sorted/n");// sorted 有序的 goto end; } } // 降序 第二个元素 小于 第 一个元素,以此类推 else if (arr[i] <= arr[i - 1])// else if 是防止 你们有人使用break,如果是 if 的话, 跳出最近的循环,会继续进行判断,会出现意外情况,明明 是无序的,却输出 有序的(降序的) { for (j = i; j < n; j++)//遍历数组,i = 1 方便 比较大小,来判断 降序 { if (arr[j] > arr[j - 1])// 如果在 降序中 出现这种 相反情况的,那么它肯定不是降序数组,也不是升序 { printf("unsorted/n");// 所以 输出 unsorted 无序的 goto end; } } if (j == n)// 当遍历 数组 时,意味着 数组 为降序 { 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);// 输出两个整数 n 和 m int i = 0; for (i = 0; i < n; i++)// 输入 n 个整数 放进 数组 a1 { scanf("%d", &a1[i]); } for (i = 0; i < m; i++)// 输入 m 个整数 放进 数组 a2 { scanf("%d", &a2[i]); } for (i = 0; i < m; i++)// 数组a1[n] 最后一个元素的下标为 n-1,所以我们追加数组,应该从下标 n 开始赋值 追加数组 a2 { a1[n+i] = a2[i]; } qsort(a1, n + m, sizeof(int), compare);// 这里使用的qsort 进行排序 注意添加头文件 stdlib,h for (i = 0; i < (n + m); i++)//最后输出一下数组a1就行了,因为 我们是把 a2 追加 给了 a1 { printf("%d ", a1[i]); } return 0;}
如果大家有什么新思维,可以在下方评论。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/119680.html
摘要:栈被称为一种后入先出的数据结构。散列使用的数据结构叫做散列表。这些操作需要求助于其他数据结构,比如下面介绍的二叉查找树。 前言 在过去的几年中,得益于Node.js的兴起,JavaScript越来越广泛地用于服务器端编程。鉴于JavaScript语言已经走出了浏览器,程序员发现他们需要更多传统语言(比如C++和Java)提供的工具。这些工具包括传统的数据结构(如链表,栈,队列,图等),...
摘要:排序代码实现和一概念排序算法的稳定性稳定性稳定排序算法会让原本有相等键值的纪录维持相对次序。交换的结果导致结点的值变化了,重复,,的操作,直到没有孩子时跳出代码实现构建初始堆堆排序算法思想大顶堆举例将待排序的序列构造成一个大顶堆。 排序 代码实现:Java 和 Python 一、概念 1.1 排序算法的稳定性 稳定性:稳定排序算法会让原本有相等键值的纪录维持相对次序。也就是如果一个排序...
阅读 3681·2021-11-11 11:00
阅读 2112·2021-10-08 10:05
阅读 2613·2021-10-08 10:04
阅读 3177·2021-09-30 09:48
阅读 3724·2021-09-27 14:10
阅读 1652·2021-09-09 09:33
阅读 2069·2019-08-30 15:55
阅读 1585·2019-08-30 13:53