- UID
 - 69876
 
 注册时间2010-8-3
阅读权限10
最后登录1970-1-1
周游历练 
  
 
 
 
该用户从未签到  
 | 
 
用了半小时.希望看了的给点意见。简化一下代码啊.谢谢.- #define N 10
 
 - #include<string.h>
 
 - void change(int *a,int *b)
 
 - {
 
 -        *(a)=*(a)+*(b);
 
 -        *(b)=*(a)-*(b);
 
 -        *(a)=*(a)-*(b);
 
 - }
 
 - void inlist(int *a,int n)
 
 - {
 
 -         int i;
 
  
-         for(i=0;i<n;i++)
 
 -         {
 
 -                 scanf("%d",a+i);
 
 -         }
 
 - }
 
 - void showlist(int *a,int n)
 
 - {
 
 -         int i;
 
  
-         for(i=0;i<n;i++)
 
 -         {
 
 -                 printf("%d ",*(a+i));
 
 -         }
 
 -         printf("\n");
 
 - }
 
 - void sortlist(int *a,int n,char *str)
 
 - {
 
 -         int i,j;
 
 -         char str1[]="ltos";
 
 -         char str2[]="stol";
 
  
-         if(strcmp(str,str1)==0)
 
 -         {
 
 -                 for(i=0;i<n-1;i++)
 
 -                 {
 
 -                         for(j=0;j<n-1-i;j++)
 
 -                         {
 
 -                                 if(a[j]<a[j+1])
 
 -                                 {
 
 -                                         change(a+j,a+j+1);
 
 -                                 }
 
 -                         }
 
 -                 }
 
 -         }
 
 -         else if(strcmp(str,str2)==0)
 
 -         {
 
 -                 for(i=0;i<n-1;i++)
 
 -                 {
 
 -                         for(j=0;j<n-1-i;j++)
 
 -                         {
 
 -                                 if(a[j]>a[j+1])
 
 -                                 {
 
 -                                         change(a+j,a+j+1);
 
 -                                 }
 
 -                         }
 
 -                 }
 
 -                 
 
 -         }
 
 -         else
 
 -         {
 
 -                 for(i=0;i<n-1;i++)
 
 -                 {
 
 -                         for(j=0;j<n-1-i;j++)
 
 -                         {
 
 -                                 if(i%2)
 
 -                                 {
 
 -                                         if(a[j]<a[j+1])
 
 -                                         {
 
 -                                                  change(a+j,a+j+1);
 
 -                                         }
 
 -                                         
 
 -                                 }
 
 -                                 else
 
 -                                 {
 
 -                                         if(a[j]>a[j+1])
 
 -                                         {
 
 -                                                  change(a+j,a+j+1);
 
 -                                         }
 
 -                                         
 
 -                                 }
 
 -                         }
 
 -                 }
 
 -                 
 
 -         }
 
 - }
 
 - main()
 
 - {
 
 -         int *a=(int *)malloc(N*sizeof(int));
 
  
-         inlist(a,N);
 
  
-     printf("your Input number:");
 
  
-         showlist(a,N);
 
  
-         sortlist(a,N,"ltos");
 
  
-     printf("ltos:");
 
  
-         showlist(a,N);
 
  
-         sortlist(a,N,"stol");
 
  
-     printf("stol:");
 
  
-         showlist(a,N);
 
  
-         sortlist(a,N,"lx");
 
  
-     printf("lx:");
 
  
-         showlist(a,N);
 
  
-         free(a);
 
  
- }
 
 
  复制代码 |   
 
 
 
 |