taxis:排序 swap:交换 temp:临时
#include <stdio.h>
#include <string.h>
#define N 10
void swap(int *a,int n) /*本函数写在main函数之前可省掉“函数原型(或称函数声明)”*/
{
int *p1,*p2,temp;
for(p1=a;p1<=a+n-2;p1++)/*若把a+n-2在for语句前定义为一个变量,可有效提高计算机的运算速度,因为这样可以减少运算次数*/
for(p2=p1+1;p2<=a+n-1;p2++)/*同理,若把a+n-1在for语句前定义为一个变量,可有效提高计算机的运算速度,,因为这样可以减少运算次数*/
if(*p1<*p2)/*切记不能错写成if(p1<p2),因为未加指针运算符*的p1、p2仅是一个指针变量,而不是指向指针变量所指向的某一变量值*/
{
temp=*p1;
*p1=*p2;
*p2=temp;
}
}
void main()
{
int i,*p,array[N];
p=array;
printf("Input %d numbers:",N);
for(;p<array+N;p++)
scanf("%d",p);
printf("Source data:");
for(p=&array[0];p<array+N;p++) /*for语句中的p=&array[0]可改写为p=array*/
printf("%-4d",*p);
putchar('/n');
p=array;
swap(p,N);
printf("Has been taxis:");/*Has been taxis:排序后*/
for(i=0;i<N;i++)
printf("%-4d",array[i]);
printf("/n");
}