c语言编程有关数组的几道例题.doc
《c语言编程有关数组的几道例题.doc》由会员分享,可在线阅读,更多相关《c语言编程有关数组的几道例题.doc(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验四 一维数组、二维数组一、实验目的与要求1、熟练掌握一维数组、二维数组的定义、赋值和输入输出的方法。 2、掌握与数组有关的算法。二、实验内容1、(1)输入N个整数,使用冒泡排序,将数据由大到小输出。#include stdafx.h#includevoid swap2(int*,int*);void bubble(int a,int n);int main(void) int n,a8; int i; printf(Enter n(n=8):); scanf(%d,&n); printf(Enter a%d:, n); for(i=0;in;i+) scanf(%d, &ai); bubb
2、le(a,n);printf(After sorted,a%d=, n);for(i=0;in;i+) printf(%3d,ai);return 0;void bubble(int a,int n) /*n是数组a中待排序元素的数量*/ int i,j; for(i=1;in;i+) /*外部循环-请问这个嵌套循环怎么理解?*/ for(j=0;jaj+1) swap2(&aj,&aj+1); /*交换*/void swap2(int *px,int *py) int t;t=*px;*px=*py;*py=t;单向冒泡排序法:/输入10个整数,按从大到小输出/#includevoid ma
3、in()int i,j,t,a10;printf(请输入10个整数n);for(i=0;i10;i+)scanf(%d,&ai);for(j=1;j10;j+) /10个数要来回做(10-1)趟次/for(i=1;iai-1) /每做完一趟,就会将数组中较小的一个数沉淀下来,较大的数不断往上冒/t=ai;ai=ai-1;ai-1=t;printf(按从大到小排序输出结果是:n);for(i=0;i10;i+)printf(%-3d,ai);printf(n);双向冒泡排序法:/输入10个整数,按从大到小输出/#includevoid main()int i,j,t,k,a10;printf(请
4、输入10个整数n);for(i=0;i10;i+)scanf(%d,&ai);for(j=1;j10;j+) /10个数要来回做(10-1)趟次/ for(i=1;iai-1) /每做完一趟,就会将数组中较小的一个数沉淀下来,较大的数不断往上冒/ t=ai;ai=ai-1;ai-1=t; for(k=i-1;k0;k-) /与单向冒泡不同的是,这是双向冒泡的关键,每一次从顶至下比较完一次后,同时再从下/ if(akak-1) /至上比较一次,也就是说每一趟数组中的元素两两比较了两次,这就是双向冒泡排序了/ t=ak;ak=ak-1;ak-1=t; printf(按从大到小排序输出结果是:n);
5、for(i=0;i10;i+)printf(%-3d,ai);printf(n); $(2)输入N个整数,使用改进的冒泡排序,将数据由大到小输出。#include stdafx.h#includevoid swap2(int*,int*);void bubble(int a,int n);int main(void) int n,a8; int i; printf(Enter n(n=8):); scanf(%d,&n); printf(Enter a%d:, n); for(i=0;in;i+) scanf(%d, &ai); bubble(a,n);printf(After sorted,
6、a%d=, n);for(i=0;in;i+) printf(%3d,ai);return 0;void bubble(int a,int n) /*n是数组a中待排序元素的数量*/ int i,j; for(i=1;in;i+) /*外部循环-请问这个嵌套循环怎么理解?*/ for(j=0;jaj+1) swap2(&aj,&aj+1); /*交换*/void swap2(int *px,int *py) int t;t=*px;*px=*py;*py=t;2、*输入N-1个整数组成一数列,再输入某数x,先将数列排序,根据x的值插入到有序数列中。#include main () void R
7、ank(int N,int n); int i,j,k; int n11; printf(请输入10个整数:); for(i=0;in9) n10=k; else for(i=0;ni=i;j-) nj+1=nj; /腾出位置,用以插入所输入的数ni=k; printf(n排序后此数列按升序排列为:); for(i=0;i=10;i+) printf(%-4d,ni); void Rank(int N,int n) int i,k,iTemp; for(k=1;k=k;i-) if(ni-1ni) iTemp=ni; ni=ni-1; ni-1=iTemp; printf(排序后此数列按升序排
8、列为:); for(i=0;i=N-1;i+) printf(%-4d,ni); printf(n); 3、输入行数n,打印出杨辉三角。#include int main() int yh101101=,0,1,i,n,m; scanf(%d,&m); /*输入要打印的行数,不能太大。我水平不高。*/ for(i=2;i=m;i+) yhi1=yhii=1; for(n=2;ni;n+) yhin=yhi-1n-1+yhi-1n; for(i=1;i=m;i+) for(n=1;n=i;n+) printf(%d ,yhin); printf(n); return 0;#include#inc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c语言编程 有关数组的几道例题 语言 编程 有关 数组 例题
限制150内