11. 在主函数中输入10个等长的字符串。用另一函数对它们排序。然后在主函数输出这10个已排好序的字符串。

  1. 在主函数中输入10个等长的字符串。用另一函数对它们排序。然后在主函数输出这10个已排好序的字符串。
#include <stdio.h>
#include <string.h>

int main()
{
    char ch[10][123],(*p)[123];
    int i;
    
    p=ch;
    printf("输入10个字符串:\n");  
    for(i=0;i<10;i++)    
    {    
        scanf("%s",p+i); 
    }    
    printf("\n");    
    
    void sort(char (*p)[123],int n);
    sort(p,10);  
    
    for(i=0;i<10;i++)    
    {    
        printf("%s\n",p+i);    
    }    
    
    return 0;
 }
 
 void sort(char (*p)[123],int n)
{ 
    int i,j,k;    
    char c[123];        
    
    for(i=0;i<n-1;i++) //用选择法对字符串怕序
    {    
        k=i;        
        for(j=i+1;j<n;j++)        
        {       
            if(strcmp((p+j),(p+k))>0) 
                k=j;        
        }    
            if(i!=k)        
            {      
                strcpy(c,p+i);
                strcpy(p+i,p+k);
                strcpy(p+k,c);       
             }    
         }
     }

用指针数组处理上一题目

#include <stdio.h>

int main()
{    
     char *p[10]={"djhx","xjidjxj","dhhddh","hdhdhd","eohdgdy","rodhggd","bxudhx","fjodjd","jdhfdjj","oehxydhj"};
     int i;        
     
     printf("字符串本来的顺序\n");    
     for(i=0;i<10;i++)    
     {    
         printf("%s\n",p[i]);    
     }    
     printf("\n");        
     
     void sort(char *p[10],int n); 
     sort(p,10);        
     
     printf("排序后…\n"); 
     for(i=0;i<10;i++)    
     {    
         printf("%s\n",p[i]);    
     }    
     printf("\n");    
     
     return 0;
     }
     
 void sort(char *p[10],int n)
 {    
     int i,j,k;    
     char *temp;        
     
     for(i=0;i<n-1;i++)    //选择法排序
     {    
         k=i;        
         for(j=i+1;j<n;j++)        
         {            
             if(strcmp(p[j],p[k])>0)   
                 k=j;        
         }        
         if(i!=k)        
         {         
            temp=p[i];
            p[i]=p[k];     
            p[k]=temp;        
         }    
     }
     
 }
上一篇:bitmap


下一篇:JS字面量和变量