sy9_1_2.c

来自「数据结构实验与学习指导」· C语言 代码 · 共 43 行

C
43
字号
/*  sy9_1_2.c  */
#include "stdio.h"
#define MAXSIZE 10
typedef struct
  {int elem[MAXSIZE+1];
   int length;
  }SL;
SL *Create_Sq(int n)
  {int i;
   SL *R=(SL *)malloc(sizeof(SL));
   printf("\n 请输入数组元素: ");
   for(i=1;i<=n;i++)
     scanf("%d",&R->elem[i]);
   printf("\n 数组中的数据是:\n");
   for(i=1;i<=n;i++)
     printf("%3d",R->elem[i]);
   return R;
  }
void ReSort(SL *R,int n) /*重排数组,使负值关键字在前*/
  {int i=1,j=n; /*数组存放在R[1..n]中*/
  while(i<j) /*i<j表示尚未扫描完毕*/
    {while(i<j&&R->elem[i]<0) /*遇到负数则继续扫描*/
       i++;
     R->elem[0]=R->elem[i]; /*R.elem[0]为辅助空间*/
    while(i<j&&R->elem[j]>=0)/*遇到正数则继续向左扫描*/
      j--;
    R->elem[i++]=R->elem[j];R->elem[j--]=R->elem[0];
    }
  }/*ReSort*/
void main()
  {int n,i;
   SL *R;
   printf("请输入数组的长度:");
   scanf("%d",&n);
   R=Create_Sq(n);/*创建长度为n的顺序表*/
   ReSort(R,n);
   printf("\n 排序结果为:\n");
   for(i=1;i<=n;i++)
     printf("%3d",R->elem[i]);
   getch();
  }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?