#include <stdio.h> #include <malloc.h> #include <conio.h>
void swap(int *,int *); void input(int *,int); void process(int *,int); void output(int *,int);
int main() { int *n; n=(int*)malloc(10*sizeof(int)); if(!n) { printf("Cannot allocate memory!\n"); return 0; } input(n,10); printf("Before processing\n"); output(n,10); process(n,10); printf("After processing\n"); output(n,10); free(n); getch(); return 1; }
void swap(int *a,int *b) { int temp; temp=*a; *a=*b; *b=temp; }
void input(int *num,int size) { register int i; printf("Please input %d numbers\n",size); for(i=0;i<size;i++) scanf("%d",num++); }
void process(int *num,int size) { register int i; int *p,*maxp=num,*minp=num; int maxnum=*num,minnum=*num; int *bkbegin=num,*bkend=num+size-1; for(p=num;p<=bkend;p++) { if(maxnum<*p) maxp=p; if(minnum>*p) minp=p; } /* 为什么交换是无效的? */ swap(minp,bkbegin); swap(maxp,bkend); }
void output(int *num,int size) { register int i; for(i=0;i<size;i++) printf("%4d",*num++); printf("\n"); }
[此贴子已经被作者于2005-6-1 19:13:05编辑过]