该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

前面已经有一道类似的题目为这道题做铺垫,我已经做出来啦。前面的题目是这样的:用选择法对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语言存储地址规律,一数组按顺序序存放,插入一个数,按原来排序规律放在相应位置...相关推荐

  1. c语言元素插入数组并排序,一数组按顺序序存放,插入一个数,按原来排序规律放在相应位置...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 前面已经有一道类似的题目为这道题做铺垫,我已经做出来啦.前面的题目是这样的:用选择法对10个数进行排序. 我的做法,就是一个个对比扫描,从左到右递增.代码 ...

  2. 将数组升序排列后,插入一个数,仍然保持升序排列。

    将数组升序排列后,插入一个数,仍然保持升序排列. 先进性逆序排序 ```java` public static void main(String[] args) { Scanner input = n ...

  3. 输入一个数组,逆序存放在另一个数组并输出

    <程序设计基础实训指导教程-c语言> ISBN 978-7-03-032846-5 p73 4.1.2 上级实训内容 [实训内容1]在1个数组中输入10个数,逆序存放在另一个数组中. #i ...

  4. PTA 数组 7-2 逆序存放数组中的数据,并输出指定元素

    本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按要求输出指定的数组元素. 输入格式: 在第一行中给出一个正整数n(1≤n≤10).第二行输入n个整数,用空格分开.第三行输 ...

  5. 用C语言写个字符串一维数组的逆序输出,c语言怎么用数组倒序输出

    scanf("%d",&a[i]); //倒序输出数组内容 for( int *ptr=a+SIZE; ptr!=a; ) printf( "%d\t" ...

  6. 【C语言】合并两个数组,降序排列并删除重复元素(通俗易懂)

    [问题描述] 试着写一个程序,具体内容如下: 建立两个整型数组(int n;scanf("%d",&n);int a[n]),将其合并,对他们进行降序排序,去掉相同项,输出 ...

  7. 一维数组的逆序存放的两种方法

    逆序存放 方法一:交换法 #include "stdio.h" main() {int iA[10]={1,2,3,4,5,6,7,8,9,10},i,iTemp;for(i=0; ...

  8. 解析:数组名a、数组名取地址a、数组首地址a[0]、数组指针*p

    数组和指针向来就是傻傻分不清,当他们一起出现的时候就更加懵逼. 1 解析不同变量之间的区别: 数组名a: 数组名可以作为数组第一个元素的指针.我们由数组和指针的关系知道,a代表这个地址数值,它相当于一 ...

  9. C++ 数组名a、数组名取地址a、数组首地址a[0]、数组指针*p

    数组名a: 数组名可以作为数组第一个元素的指针.由数组和指针的关系知道,a代表这个地址数值,它相当于一个指针,指向第一个元素(&a[0]),即指向数组的首地址.数组中的其他元素可以通过a的位移 ...

最新文章

  1. python综合程序设计-Python程序设计实验五:综合运用三种基本结构进行程序设计...
  2. Linux安装python3.6.3
  3. 五天带你学完《计算机网络》·第五天·网络层(下)
  4. java字符串去重复_java去除字符串中重复、不重复、消除重复后字符
  5. 3dmax坐标系与导出fbx的坐标系
  6. JS,JQ 格式化小数位数
  7. 用于Spring应用程序的Gradle原型
  8. python partition只能切割一次吗_Python3的字符串方法
  9. 【MyBatis框架】MyBatis入门程序第二部分
  10. 在SQL Server Management Studio(SSMS)中调试存储过程
  11. QT学习笔记之对话框
  12. ios微信下vue项目组件切换并自动播放音频的解决方案
  13. 3.2 Hadoop生态
  14. 【Java练习题】Java 程序的输出 | 第十一套(含解析)
  15. C++小游戏——坦克大战
  16. Linux命令之du命令
  17. 初学者该如何入手云计算
  18. Linux挂载(增加一块新硬盘)
  19. 一文看懂国内人工智能行业产业链全景(必收藏)
  20. 开源按键组件Multi_Button的使用,含测试工程

热门文章

  1. postgresql学习笔记一之安装
  2. php之Deprecated 问题
  3. 深入浅出MySQL出版了
  4. 【Shell】数某关键字在文件中出现次数
  5. Sparrow - Distributed, Low Latency Scheduling
  6. Silverlight 4 的打印支持
  7. Linux 系统如何更改主机名
  8. Linux之/etc/group文件
  9. webhook机器人php源码,webhook机器人
  10. 十、Python-模块