C语言存储地址规律,一数组按顺序序存放,插入一个数,按原来排序规律放在相应位置...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
前面已经有一道类似的题目为这道题做铺垫,我已经做出来啦。前面的题目是这样的:用选择法对10个数进行排序。
我的做法,就是一个个对比扫描,从左到右递增。代码如下:
#include
#define N 10
int main ()
{
int array[N];
int i,j,k,temp; // i 为基准位置,j 为当前被扫描元素位置,k 用于暂存出现的较小的元素的位置
for (i = 0; i <=9; i++)
scanf ("%d", &array[i]);
for (i=0;i<9;i++)//从第一个元素左到右扫描。
{ k=i;//初始化为基准位置
for(j=i+1;j<9;j++)
{
if (array[j]
{ temp=array[j];
array[j]=array[k];
array[k]=temp;
}// 将此趟扫描得到的最小元素与基准互换位置
}
}
for (i = 0; i <= 9; i++)
printf ("%3d", array[i]);
printf ("\n");
}
那么遇到这道题,我是这么想的。我先给一个10个元素的数组赋值并递增,然后用键盘添加一个数。再用上一题的方法,再从头到尾扫描。
#include
int main ()
{ //用折半法做不出来,改为用选择法。
int array[11] = {0};
int t, i ,n, j;
for (i = 0; i < 10; i++)
if (i == 0) array[0] = 1;
else
array[i] = array[i-1] + i; //自动对数组赋值。
for (i = 0; i < 10; i++)
printf ("%3d ", array[i]);
printf ("\n");
scanf ("%d", &array[10]); //通过键盘对第11个元素赋值。
for (i = 0; i < 11; i++)
for (j = i+1; j < 11; j++)
{
if (array[j] < array[i])
{
t = array[i];
array[i] = array[j];
array[j] = t; //如果后面的数大于前面的数,那么两个数互换。
}
}
for (j = 0; j < 11; j++)
printf ("%3d ", array[i]);
printf ("\n"); //对这11个元素进行输出。
}
运行时候,通过键盘赋值时候,新的数组就变成了一堆垃圾值。
运行结果:
1 2 4 7 11 16 22 29 37 46
23
1638280 1638280 1638280 1638280 1638280 1638280 1638280 1638280 1638280 1638280
1638280
Press any key to continue
C语言存储地址规律,一数组按顺序序存放,插入一个数,按原来排序规律放在相应位置...相关推荐
- c语言元素插入数组并排序,一数组按顺序序存放,插入一个数,按原来排序规律放在相应位置...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 前面已经有一道类似的题目为这道题做铺垫,我已经做出来啦.前面的题目是这样的:用选择法对10个数进行排序. 我的做法,就是一个个对比扫描,从左到右递增.代码 ...
- 将数组升序排列后,插入一个数,仍然保持升序排列。
将数组升序排列后,插入一个数,仍然保持升序排列. 先进性逆序排序 ```java` public static void main(String[] args) { Scanner input = n ...
- 输入一个数组,逆序存放在另一个数组并输出
<程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p73 4.1.2 上级实训内容 [实训内容1]在1个数组中输入10个数,逆序存放在另一个数组中. #i ...
- PTA 数组 7-2 逆序存放数组中的数据,并输出指定元素
本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按要求输出指定的数组元素. 输入格式: 在第一行中给出一个正整数n(1≤n≤10).第二行输入n个整数,用空格分开.第三行输 ...
- 用C语言写个字符串一维数组的逆序输出,c语言怎么用数组倒序输出
scanf("%d",&a[i]); //倒序输出数组内容 for( int *ptr=a+SIZE; ptr!=a; ) printf( "%d\t" ...
- 【C语言】合并两个数组,降序排列并删除重复元素(通俗易懂)
[问题描述] 试着写一个程序,具体内容如下: 建立两个整型数组(int n;scanf("%d",&n);int a[n]),将其合并,对他们进行降序排序,去掉相同项,输出 ...
- 一维数组的逆序存放的两种方法
逆序存放 方法一:交换法 #include "stdio.h" main() {int iA[10]={1,2,3,4,5,6,7,8,9,10},i,iTemp;for(i=0; ...
- 解析:数组名a、数组名取地址a、数组首地址a[0]、数组指针*p
数组和指针向来就是傻傻分不清,当他们一起出现的时候就更加懵逼. 1 解析不同变量之间的区别: 数组名a: 数组名可以作为数组第一个元素的指针.我们由数组和指针的关系知道,a代表这个地址数值,它相当于一 ...
- C++ 数组名a、数组名取地址a、数组首地址a[0]、数组指针*p
数组名a: 数组名可以作为数组第一个元素的指针.由数组和指针的关系知道,a代表这个地址数值,它相当于一个指针,指向第一个元素(&a[0]),即指向数组的首地址.数组中的其他元素可以通过a的位移 ...
最新文章
- python综合程序设计-Python程序设计实验五:综合运用三种基本结构进行程序设计...
- Linux安装python3.6.3
- 五天带你学完《计算机网络》·第五天·网络层(下)
- java字符串去重复_java去除字符串中重复、不重复、消除重复后字符
- 3dmax坐标系与导出fbx的坐标系
- JS,JQ 格式化小数位数
- 用于Spring应用程序的Gradle原型
- python partition只能切割一次吗_Python3的字符串方法
- 【MyBatis框架】MyBatis入门程序第二部分
- 在SQL Server Management Studio(SSMS)中调试存储过程
- QT学习笔记之对话框
- ios微信下vue项目组件切换并自动播放音频的解决方案
- 3.2 Hadoop生态
- 【Java练习题】Java 程序的输出 | 第十一套(含解析)
- C++小游戏——坦克大战
- Linux命令之du命令
- 初学者该如何入手云计算
- Linux挂载(增加一块新硬盘)
- 一文看懂国内人工智能行业产业链全景(必收藏)
- 开源按键组件Multi_Button的使用,含测试工程