对10个数按由小到大进行排序用指针

来源:百度知道 编辑:UC知道 时间:2024/05/26 10:09:24
是C语言的

在c/c++中利用数组名作为函数参数传递排序和用指针进行排序的例子。

  以下两个例子要非常注意,函数传递的不是数组中数组元素的真实值而是数组在内存中的实际地址。

  #include <stdio.h>

  void main(void)
  {

  void reversal();
  static int a[10] = {0,1,2,3,4,5,6,7,8,9}; /* 建立一个数组并初始化 */
  int i;
  for (i=0;i<10;i++)
  {
  printf("%d ",a);
  }
  printf("\n");
  reversal(a,10); /* 调用自定义涵数进行反向显示排序,并把数组a的起始地址传送给形式参数x */

  for (i=0;i<10;i++)
  {
  printf("%d ",a);
  }
  printf("\n");

  }

  void reversal(x,n)
  int x[],n; /* 定义形式参数 */
  {
  int m=(n-1)/2; /* 计算10个数需要循环几次,因为是两两调换第一个数组是x[0]故应该是int(9/2) */
  int temp,i,j; /* 建立零时变量temp用于每次交换处理时零时存储x的值 */
  for (i=0;i<=m;i++)
  {
  j=n-1-i; /* 反向计算出被调换的数组下标,例如x[0] 对应的x[n-1-i]就是x[9] */
  temp=x;
  x=x[j];
  x[j]=temp;
  }
  }

  /* 次题需要注意的是:这里由于a[10]和x[10