实验四 一维数组、二维数组

一、实验目的与要求

1、熟练掌握一维数组、二维数组的定义、赋值和输入输出的方法。

2、掌握与数组有关的算法。

二、实验内容

1、(1)输入N个整数,使用冒泡排序,将数据由大到小输出。

#include ""

#include<>

void swap2(int*,int*);

void bubble(int a[],int n);

int main(void)

{

int n,a[8];

int i;

printf("Enter n(n<=8):");

scanf("%d",&n);

printf("Enter a[%d]:", n);

for(i=0;i

scanf("%d", &a[i]);

bubble(a,n);

printf("After sorted,a[%d]=", n);

for(i=0;i

prin tf("%3d",a[i]);

return 0;

}

是数组a中待排序元素的数量

是数组a中待排序元素的数量*/

外部循环---请问这个嵌套循环怎么理解*/

内部循环---请问这个嵌套循环怎么理解*/

{

int i,j;

for(i=1;i< n; i++)/*

for(j=0;j

if(a[j]>a[j+1])

swap2(&a[j],&a[j+1]); /*交换 */

void swap2(i nt *px,i nt *py)

{ int t;

t=*px;

*px=*py;

*py=t;

}

单向冒泡排序法:

//输入10个整数,按从大到小输出//

#in clude<>

void mai n()

int i,j,t,a[10];

printf("请输入10个整数\n");

for(i=0;i<10;i++)

sca nf("%d", &a[i]);

for(j=1;j<10;j++)

//10

个数要来回做(10-1)趟次//

for(i=1;i<11-j;i++)

//

第j趟要做(10-j)次比较//

if(a[i]>a[i-1])

//

每做完 趟,就会将数组中较小的 个

数沉淀下来,较大的数不断往上冒//

{t=a[i];a[i]=a[i-1];a[i-1]=t;}

prin tf("按从大到小排序输出结果是:\n");

for(i=0;i<10;i++)

prin tf("%-3d",a[i]);

prin tf("\n");

}

双向冒泡排序法:

//输入10个整数,按从大到小输出//

#in clude<>

void mai n()

{

int i,j,t,k,a[10];

printf("请输入10个整数\n");

for(i=0;i<10;i++) sea nf("%d", &a[i]);

for(j=1;j<10;j++)〃10个数要来回做(10-1)趟

次//

{for(i=1;i<11-j;i++)//第 j 趟要做(10-j)次比较,双

向冒泡法,是先从上至下两两比较一次//

if(a[i]>a[i-1])//每做完一趟,就会将数组中较小的一个

数沉淀下来,较大的数不断往上冒//

{t=a[i];a[i]=a[i-1];a[i-1]=t;}

for(k=i-1;k>0;k--)//与单向冒泡不同的是,这是双向冒泡的

关键,每一次从顶至下比较完一次后,同时再从下//

if(a[k]>a[k-1])//至上比较一次,也就是说每一趟数组

中的元素两两比较了两次,这就是双向冒泡排序了 //

{t=a[k];a[k]=a[k-1];a[k-1]=t;}

}

prin tf("按从大到小排序输出结果是:\n");

for(i=0;i<10;i++)

prin tf("%-3d",a[i]);

prin tf("\n");

}

$(2)输入N个整数,使用改进的冒泡排序,将数据由大到小输出

#include ""

#include<>

void swap2(int*,int*);

void bubble(int a[],int n);

int main(void)

{

int n,a[8];

int i;

printf("Enter n(n<=8):");

scanf("%d",&n);

printf("Enter a[%d]:", n);

for(i=0;i

scanf("%d", &a[i]);

bubble(a,n);

printf("After sorted,a[%d]=", n);

for(i=0;i

printf("%3d",a[i]);

return 0;

}

void bubble(int a[],int n) /*n 是数组 a 中待排

c语言编程数组例题,c语言编程有关数组的几道例题.docx相关推荐

  1. c语言编程顺序查找例题,C语言典型编程例题.doc

    C语言典型编程例题 典型编程例题 一.数列(阶乘)问题 1.s=1+22+32+--+202 2.求阶乘20!的值. 3.求1!+2!+--+20! 4.输出菲波那契数列前20个数(1,1,2,3,5 ...

  2. C语言编程>第七周 ⑧ 请编一个函数void fun(int a[M][N],int b[N]),c指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入b所指一维数组中。

    例题:请编一个函数void fun(int a[M][N],int b[N]),c指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入b所指一维数组中.二维数组中的数己在主函数中赋予. ...

  3. c语言中通过键盘给一维数组赋值怎么_编程C语言进阶篇——构造类型:数组

    在c语言的实际应用中,我们常常需要同时对多个数据进行处理,如果没有专门批量处理数据的方法,就会给我们的程序编写造成巨大的影响.而这种批量处理数据的方法就是我们这次的主题--数组. 一.数组是什么 在c ...

  4. JS数组 编程练习 使用Javascript语言,把以下数组 在页面显示如下图所示的图案

    编程练习 使用Javascript语言,把以下数组 var  arr = ['*','##',"***","&&","****&quo ...

  5. 快乐编程大本营【java语言训练班】第5课: java的数组编程

    快乐编程大本营[java语言训练班]第5课: java的数组编程 第1节. 声明数组变量 第2节. 创建数组对象 第3节. 访问数组元素 第4节. 修改数组元素 第5节. 多维数组 学习地址如下: h ...

  6. c语言数组长度可以在键盘上输入吗,C语言编程(用指针) 定义一个数组长度为10,从键盘输入数组,将每一个元素除以2后,输出数组...

    #includeint main(){int a[10]={},i,sum=0;printf("请输入10个整数:\n");for(i=0;i<10;i++){scanf(& ...

  7. 一维数组求平均值c语言编程软件,请问一道c++编程:求一维数组中全部元素的平均值?...

    编程代码如下: //文件后缀名为.cpp #include using namespace std; #define NUM 20 //求和数据个数的最大值 int main() { int i,n; ...

  8. C语言高级编程:二维数组、指针的指针、数组指针、指针数组

    1. 定义 int **p;  指针的指针 int (*p2)[5];  数组指针,指向一个数组 int *array[5];  指针数组,是一个int *类型数组 int array2[3][5]; ...

  9. 电子学会 青少年软件编程等级考试 C语言 3 级

    3级-2020-12-01-完美立方 2810:完美立方 OpenJudge - 2810:完美立方 3级-2020-12-02-不定方程求解 4139:不定方程求解 OpenJudge - 4139 ...

  10. C语言代码示范与讲解+C语言编程规范及基础语法+编程实战

    上一篇文章:C语言程序设计概述+C语言简介+算法概述 C语言代码示范与讲解+C语言编程规范及基础语法+编程实战 一:代码示范集加讲解 1.C语言第一个代码:打印"This is the fi ...

最新文章

  1. Java Swing 皮肤
  2. SecureCRT下的串口不能输入
  3. JAVA_OA管理系统(三):Spring参数注入
  4. DirectX11 初探XMVECOTRXMMATRIX
  5. Random Maze HDU - 4067 费用流/可行流
  6. 光猫的分类及应用范围有哪些?
  7. Kubernetes 是一个“数据库”吗?
  8. MOS9.0 bootstrap 离线Bulid
  9. 山东大学_网络攻击与防范(林)_名词解释
  10. Au 音频效果参考(合集)
  11. 如何识别pdf文档中的文字(图像识别)python
  12. java指定路径不存在_Java在指定路径上创建文件提示不存在解决方法
  13. Java 反射机制:(三)类的加载
  14. 《Xenogears》(异度装甲)隐含的原型与密码
  15. 冯诺依曼体系各硬件工作原理解析
  16. VPP调试trace显示
  17. DataGuard - 利用Cascaded Redo Log Destinations避免WAN稳定性问题
  18. 7-14 电话聊天狂人 (25分)
  19. Linux安装Steam常见问题解决方法
  20. 超级无敌好用的投屏AirServer

热门文章

  1. 在Word2010中交叉引用插入参考文献
  2. php/nginx重启命令
  3. 【百度地图API】如何在地图上添加标注?——另有:坐标拾取工具+打车费用接口介绍
  4. LevalSet水平集分割算法 matlab程序源码
  5. matplotlib.plt.subplot()用法
  6. 使用python的zipfile模块巧解word批量生成问题
  7. 数据库中视图与表的区别以及如何创建视图、创建表
  8. html卡片式ui,十分钟认识UI设计中卡片式设计技法
  9. Linux的磁盘挂载/yum/镜像挂载
  10. 锁相环设计与MATLAB仿真