c语言编程有关数组几道例题.docxVIP

  • 8
  • 0
  • 约4.97千字
  • 约 12页
  • 2021-01-05 发布于山东
  • 举报
v1.0 可编辑可修改 实验四 一维数组、二维数组 一、实验目的与要求 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;in;i++) scanf(%d, a[i]); bubble(a,n); 1 v1.0 可编辑可修改 printf(After sorted,a[%d]=, n); for(i=0;in;i++) printf(%3d,a[i]); return 0; } void bubble(int a[],int n) /*n 是数组 a 中待排序元素的数量 */ { int i,j; for(i=1;in;i++) /* 外部循环 --- 请问这个嵌套循环怎么理解 */ for(j=0;jn-i;j++) /* 内部循环 --- 请问这个嵌套循环怎么理解 */ if(a[j]a[j+1]) swap2(a[j],a[j+1]); /* 交换 */ } void swap2(int *px,int *py) { int t; t=*px; *px=*py; *py=t; } 2 v1.0 可编辑可修改 单向冒泡排序法 : // 输入 10个整数 , 按从大到小输出 // #include void main() { int i,j,t,a[10]; printf( 请输入 10个整数 \n); for(i=0;i10;i++) scanf(%d,a[i]); for(j=1;j10;j++) //10 个数要来回做 (10-1) 趟次 // for(i=1;i11-j;i++) // 第 j 趟要做 (10-j) 次比较 // if(a[i]a[i-1]) // 每做完一趟 , 就会将数组中较小的一个 数沉淀下来 , 较大的数不断往上冒 // {t=a[i];a[i]=a[i-1];a[i-1]=t;} printf( 按从大到小排序输出结果是 :\n); for(i=0;i10;i++) printf(%-3d,a[i]); printf(\n); } 双向冒泡排序法 : // 输入 10个整数 , 按从大到小输出 // #include 3 v1.0 可编辑可修改 void main() { int i,j,t,k,a[10]; printf( 请输入 10个整数 \n); for(i=0;i10;i++) scanf(%d,a[i]); for(j=1;j10;j++) //10 个数要来回做 (10-1) 趟 次// {for(i=1;i11-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;k0;k--) // 与单向冒泡不同的是 , 这是双向冒泡的 关键 , 每一次从顶至下比较完一次后 , 同时再从下 // if(a[k]a[k-1]) // 至上比较一次 , 也就是说每一趟数组 中的元素两两比较了两次 , 这就是双向冒泡排序了 // {t=a[k];a[k]=a[k-1];a[k-1]=t;} } printf( 按从大到小排序输出结果是 :\n); for(i=0;i10;i++) printf(%-3d,a[i]); 4 v1.0 可编辑可修改 printf(\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;in;i++) scanf(%d, a[i]); bubble(a,n); printf(After sorted,a[%d]=, n); for(i=0;in;i++) 5 v1.0 可编辑可

文档评论(0)

1亿VIP精品文档

相关文档