C语言-数组和指针-11(已有一个排号序的数组,要求输入一个数后,按原来的排序规律将它插入数组中)
题目:
已有一个排号序的数组,要求输入一个数后,按原来的排序规律将它插入数组中
源代码:
#include <stdio.h>
#define ROW 7
int main(){int array[ROW] = {1,2,3,5,6,7};int num,sta=0;printf("请选择排序(由大到小: 1 由小到大: 0): ");scanf("%d",&sta);printf("请选择需要插入的数字: ");scanf("%d",&num);printf("排序前数组元素: \n");for(int x = 0;x < ROW-1;x++) printf("%d ",array[x]);printf("\n");for(int i = 0; i< ROW;i++){if(0 == sta){if(num < array[i]){for(int j = ROW-1;j > i;j--){array[j] = array[j-1];array[j-1] = array[j-2];}array[i] = num;break;}}if(1 == sta){if(num > array[i]){for(int j = ROW-1;j > i;j--){int tmp;array[j] = array[j-1];array[j-1] = array[j-2];}break;}}}printf("排序后数组元素: \n");for(int x = 0; x < ROW;x++) printf("%d ",array[x]);
}
演示效果:
程序改进1:
插入后按选择顺序进行排序
源代码:
#include <stdio.h>
#define ROW 6
void big_to_little(int * array,int row);
void little_to_big(int * array,int row);
int main(){int array[ROW] = {1,2,3,5,6,7,0};int num,sta=0;printf("请选择排序(由大到小: 1 由小到大: 0): ");scanf("%d",&sta);printf("请选择需要插入的数字: ");scanf("%d",&num);printf("排序前数组元素: \n");for(int x = 0;x < ROW-1;x++) printf("%d ",array[x]);printf("\n");for(int i = 0; i< ROW;i++){if(0 == sta){little_to_big(array,ROW);if(num < array[i]){for(int j = ROW-1;j > i;j--){array[j] = array[j-1];array[j-1] = array[j-2];}array[i] = num;break;}}if(1 == sta){big_to_little(array,ROW);if(num > array[i]){for(int j = ROW-1;j > i;j--){array[j] = array[j-1];array[j-1] = array[j-2];}array[i] = num;break;}}}printf("排序后数组元素: \n");for(int x = 0; x < ROW;x++) printf("%d ",array[x]);Return 0;
}
void big_to_little(int * array,int row){for(int i = row-1;i >= 0;i--){for(int j = 0;j < i - 1;j++){int tmp = 0;if(array[j] < array[j+1]){tmp = array[j];array[j] = array[j+1];array[j+1] = tmp;}}}
}
void little_to_big(int * array,int row){int start;for(int x = 0;x < row;x++){if(array[x] != 0) continue;;start = x;break;}for(int i = start;i >= 0;i--){for(int j = 0;j < i - 1;j++){int tmp = 0;if(array[j] > array[j+1]){tmp = array[j];array[j] = array[j+1];array[j+1] = tmp;}}}
}
演示效果:
程序改进2:
允许用户输入数值数值
源代码:
#include <stdio.h>
#define ROW 6
void big_to_little(int * array,int row);
void little_to_big(int * array,int row);
void array_input(int * array,int row);
int main(){int array[ROW];int num,sta=0;array_input(array,ROW-1);printf("请选择排序(由大到小: 1 由小到大: 0): ");scanf("%d",&sta);printf("请选择需要插入的数字: ");scanf("%d",&num);printf("排序前数组元素: \n");for(int x = 0;x < ROW-1;x++) printf("%d ",array[x]);printf("\n");for(int i = 0; i< ROW;i++){if(0 == sta){little_to_big(array,ROW);if(num < array[i]){for(int j = ROW-1;j > i;j--){array[j] = array[j-1];array[j-1] = array[j-2];}array[i] = num;break;}}if(1 == sta){big_to_little(array,ROW);if(num > array[i]){for(int j = ROW-1;j > i;j--){array[j] = array[j-1];array[j-1] = array[j-2];}array[i] = num;break;}}}printf("排序后数组元素: \n");for(int x = 0; x < ROW;x++) printf("%d ",array[x]);Return 0;
}
void big_to_little(int * array,int row){for(int i = row-1;i >= 0;i--){for(int j = 0;j < i - 1;j++){int tmp = 0;if(array[j] < array[j+1]){tmp = array[j];array[j] = array[j+1];array[j+1] = tmp;}}}
}
void little_to_big(int * array,int row){int start;for(int x = 0;x < row;x++){if(array[x] != 0) continue;;start = x;break;}for(int i = start;i >= 0;i--){for(int j = 0;j < i - 1;j++){int tmp = 0;if(array[j] > array[j+1]){tmp = array[j];array[j] = array[j+1];array[j+1] = tmp;}}}
}
void array_input(int * array,int row){int sta;printf("请输入 %d 个数给到数组: ",row);for(int i = 0;i < row;i++){input:{sta = scanf("%d",array+i);if(sta != 1){printf("输入数值错误请重新输入: ");getchar();goto input;}}}
}
演示效果:
如果朋友你感觉文章的内容对你有帮助,可以点赞,关注文章和专栏以及关注我哈,嘿嘿嘿我会定期更新文章的,谢谢朋友你的支持哈
C语言-数组和指针-11(已有一个排号序的数组,要求输入一个数后,按原来的排序规律将它插入数组中)相关推荐
- 有一个已排好序的数组,要求输入一个数后,按原来排序规律将他插入数组。
#include<stdio.h> #include<math.h> #include<string.h> int main() { int a[11]; ...
- 有一个已经排好序的数组,要求输入一个数后,按原来排序规律将它插入数组中。
代码: #include <stdio.h> #define N 11 int main(){//原数组是升序int a[N]={1,4,6,9,13,16,19,28,40,100};i ...
- c语言:“有一个已排好序的数组,要求输入一个数后,按原来的规律将它插入数组中” 的程序分析及详细代码
先来分析思路: 已经排好序的数组,有两种情况,一种是顺序,一种是逆序,由于该数组是自己给出的,所以我们不妨将该数组的顺序设为顺序. 1.我们需要创建一个顺序数组(a[ ]),创建时要注意,我们要确保数 ...
- C语言编程>第三周 ⑥ 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
例题:有一个已经排好序的数组.现输入一个数,要求按原来的规律将它插入数组中. 代码如下: /*程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个 ...
- C++经典算法题-有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
1. 题目 题目:有一个已经排好序的数组.现输入一个数,要求按原来的规律将它插入数组中. 2. 分析 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次 ...
- Python 练习实例100-39,有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
原题地址:https://www.runoob.com/python/python-100-examples.html 题目:有一个已经排好序的数组.现输入一个数,要求按原来的规律将它插入数组中. 程 ...
- 有一个已经排好序的数组,现输入一个数,要求按原来的规律将它插入数组中。——C与C++实现
题目:一个已经排好序的数组,现输入一个数,要求按原来的规律将它插入数组中.(本例中输入的是一个升序的数组) 程序分析: (1)判断输入的数是否大于数组中最后一个元素,如果成立,将输入的数插入数组的末尾 ...
- Python Challenge-39 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
#题目:有一个已经排好序的数组.现输入一个数,要求按原来的规律将它插入数组中. #!/usr/bin/python 3 # -*- coding: UTF-8 -*- #两种方法_Author_ = ...
- python练习39:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
#有一个已经排好序的数组.现输入一个数,要求按原来的规律将它插入数组中. a=2 list1=[1,3,5,6,8] i=0 #if elif 和else语句用来判断列表原来的排序规律,递减.递增还是 ...
最新文章
- 【CNN基础】常见的loss函数及其实现(一)——TV Loss
- 13.while循环
- 全球及中国汽车空调冷凝器行业发展前景规模及投资战略决策报告2022-2027年
- hadoop3.2.0集群搭建的一些坑!
- Longest X 贪心,滑动窗口,前缀和(400)
- viewport实现html页面动态缩放/meta viewport/viewport
- Linux帮助信息获取
- Tensorflow框架:InceptionV3网络概念及实现
- JavaScript历史与ECMAScript
- HTTP安全随想,第一指导原则:不要相信任何用户的输入[]
- Do Now 一个让你静心学习的APP——团队博客
- Mybatis简单数据库查询
- Linux手动配置虚拟机网络的两种方式
- 1、《java就业培训教程》-张孝祥
- openGauss社区成立QA SIG
- 自己做网站有哪些方法呢?方法分享
- c语言解决约瑟夫问题,C语言解决约瑟夫问题详解的代码
- 三、神奇的自然常数e之“自然”兄弟
- PowerShell批量部署Hyper-V Windows虚机
- 如何取消windows xp开机时的登录界面
热门文章
- 2017年网易有道校园招聘内推笔试
- 什么是非抢占式和抢占式调度方式?抢占式调度方法和非抢占式调度方法有哪些?
- android studio 打开pdf,从Android Studio中的手机浏览pdf
- android 通讯录界面设计带字母,android仿微信联系人索引列表功能
- 英雄联盟服务器维护中启动游戏失败,英雄联盟无法进入游戏,详细教您英雄联盟进不了游戏怎么办...
- 苹果手机系统更新信号无服务器,苹果手机服务中心,新买的苹果手机居然无信号...
- 北京大数据挖掘培训,能从事那些领域?
- gephi mysql_使用Gephi分析论坛社交关系网络
- Java面试题汇总大全(重点)
- 使用PS3手柄在PC玩Unity3D游戏