📄 shuju.txt
字号:
#include<stdio.h>
int Divide(int a[], int n)//把数组a中所有值为非负的记录调到负的记录之前
{
int l,h,t;
l=0;
h=n-1;
while(l<h)
{
while(l<h&&a[h]>=0) h--; //以0作为虚拟的枢轴记录
{t=a[l]; //当从后向前找时发现后面的数为非负,交换当前a[l]与a[h]的值
a[l]=a[h];
a[h]=t;}
while(l<h&&a[l]<0) l++;//当从前向后找时发现前面的数为负,交换当前a[l]与a[h]的值
{t=a[l]; a[l]=a[h];a[h]=t;}
}//while
return 1;
}//Divide
void main()
{ int i=0;
int n;
int A[20];
printf("请输入待排序的记录个数n:"); //提示输入数组元素个数
scanf("%3d",&n);
printf("请输入一组待排序的记录的值:\n "); //输入数组A
for(i=0;i<n;i++)
scanf("%3d",&(A[i]));
printf("输出整理之前的记录为:\n ");
for(i=0;i<n;i++)
printf("%3d",A[i]);//输出数组A
Divide(A,n);//调用函数Divide,把数组A中所有值为非负的记录调到负的记录之前
printf("\n一次排序后的记录为:\n ");
for(i=0;i<n;i++)
printf("%3d",A[i]);
printf("\n");
}//main
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -