c语言编程数组例题,c语言编程有关数组的几道例题.docx
实验四 一维数组、二维数组
一、实验目的与要求
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相关推荐
- c语言编程顺序查找例题,C语言典型编程例题.doc
C语言典型编程例题 典型编程例题 一.数列(阶乘)问题 1.s=1+22+32+--+202 2.求阶乘20!的值. 3.求1!+2!+--+20! 4.输出菲波那契数列前20个数(1,1,2,3,5 ...
- 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所指一维数组中.二维数组中的数己在主函数中赋予. ...
- c语言中通过键盘给一维数组赋值怎么_编程C语言进阶篇——构造类型:数组
在c语言的实际应用中,我们常常需要同时对多个数据进行处理,如果没有专门批量处理数据的方法,就会给我们的程序编写造成巨大的影响.而这种批量处理数据的方法就是我们这次的主题--数组. 一.数组是什么 在c ...
- JS数组 编程练习 使用Javascript语言,把以下数组 在页面显示如下图所示的图案
编程练习 使用Javascript语言,把以下数组 var arr = ['*','##',"***","&&","****&quo ...
- 快乐编程大本营【java语言训练班】第5课: java的数组编程
快乐编程大本营[java语言训练班]第5课: java的数组编程 第1节. 声明数组变量 第2节. 创建数组对象 第3节. 访问数组元素 第4节. 修改数组元素 第5节. 多维数组 学习地址如下: h ...
- c语言数组长度可以在键盘上输入吗,C语言编程(用指针) 定义一个数组长度为10,从键盘输入数组,将每一个元素除以2后,输出数组...
#includeint main(){int a[10]={},i,sum=0;printf("请输入10个整数:\n");for(i=0;i<10;i++){scanf(& ...
- 一维数组求平均值c语言编程软件,请问一道c++编程:求一维数组中全部元素的平均值?...
编程代码如下: //文件后缀名为.cpp #include using namespace std; #define NUM 20 //求和数据个数的最大值 int main() { int i,n; ...
- C语言高级编程:二维数组、指针的指针、数组指针、指针数组
1. 定义 int **p; 指针的指针 int (*p2)[5]; 数组指针,指向一个数组 int *array[5]; 指针数组,是一个int *类型数组 int array2[3][5]; ...
- 电子学会 青少年软件编程等级考试 C语言 3 级
3级-2020-12-01-完美立方 2810:完美立方 OpenJudge - 2810:完美立方 3级-2020-12-02-不定方程求解 4139:不定方程求解 OpenJudge - 4139 ...
- C语言代码示范与讲解+C语言编程规范及基础语法+编程实战
上一篇文章:C语言程序设计概述+C语言简介+算法概述 C语言代码示范与讲解+C语言编程规范及基础语法+编程实战 一:代码示范集加讲解 1.C语言第一个代码:打印"This is the fi ...
最新文章
- Java Swing 皮肤
- SecureCRT下的串口不能输入
- JAVA_OA管理系统(三):Spring参数注入
- DirectX11 初探XMVECOTRXMMATRIX
- Random Maze HDU - 4067 费用流/可行流
- 光猫的分类及应用范围有哪些?
- Kubernetes 是一个“数据库”吗?
- MOS9.0 bootstrap 离线Bulid
- 山东大学_网络攻击与防范(林)_名词解释
- Au 音频效果参考(合集)
- 如何识别pdf文档中的文字(图像识别)python
- java指定路径不存在_Java在指定路径上创建文件提示不存在解决方法
- Java 反射机制:(三)类的加载
- 《Xenogears》(异度装甲)隐含的原型与密码
- 冯诺依曼体系各硬件工作原理解析
- VPP调试trace显示
- DataGuard - 利用Cascaded Redo Log Destinations避免WAN稳定性问题
- 7-14 电话聊天狂人 (25分)
- Linux安装Steam常见问题解决方法
- 超级无敌好用的投屏AirServer