用冒泡排序法对10个字符串排序,并按从小到大的顺序输出.需要用c语言来编程的

如题所述

#include "stdio.h"
#include "string.h"
int main()
{
   char co[10][20]={0};
   char *p[10]={NULL},*tmp=NULL;
   int i,j;
   for(i=0;i<10;i++)
     p[i]=co[i];
   printf("请输入10个字符串:\n");
   for(i=0;i<10;i++)
     gets(co[i]);
   for(i=0;i<9;i++)
     for(j=0;j<9-i;j++)
       if(strcmp(p[j],p[j+1])>0)
       {
         tmp=p[j];
         p[j]=p[j+1];
         p[j+1]=tmp;
       } 
   printf("输入的10个字符串从小到大排序输出:\n");
   for(i=0;i<10;i++)
     puts(p[i]);       
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-05
#include<stdio.h>
main()
{
int a[10];
int i,j,t;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
{
for(j=0;j<9-i;j++)
if(a[j]>a[j+1])

t=a[j];
a[j]=a[j+1];
a[j+1]=t; 
}
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
}

第2个回答  2014-01-05
#include<stdio.h>
void mian()
{
    char a[10][20],b[20];
     int i,j,k;
    printf("输入字符串\n");
    for(i=0;i<10;i++)
    scanf("%s",a[i]);
    
    for(i=0;i<9;i++)
    {
    k=0;
  for(j=0;j<9-i;j++)
    {
    if(strcmp(a[j],a[j+1])>0)
       strcpy(b,a[j]);
        strcpy(a[j],a[j+1]);
        strcpy(a[j+1],b);
    k=1;             
     } 
       if(k==0)
        break;          
    }  
    for(i=0;i<10;i++)
    printf("%s",a[i]);         
}

第3个回答  2014-01-05
//一楼的稍做修改如下,嘿嘿
#include<stdio.h>
main()
{char a[10];
int i,j,t;for(i=0;i<10;i )scanf("%c",&a[i]);for(i=0;i<9;i )
for(j=0;j<9-i;j )
if( a[j]>a[j 1])
{
t=a[j];
a[j]=a[j 1];
a[j 1]=t;
}
for(i=0;i<10;i )
printf("%c ",a[i]);
}