C语言:输入10个姓并按字典序的升序排序

输入10个姓并按字典序的升序排序!!!用C编!!高手帮帮忙!在线等呀!

#include <stdio.h>
#include <string.h>
struct xing//用来存放姓的结构体
{
char name[20];
};
void main()
{
int i,j;
char str[20];
struct xing ren[10];//结构体数组,用来建立多少个人来存放的
for (i=0;i<10;i++)
{
printf ("请输入第 %d 姓: ",i+1);
scanf ("%s",ren[i].name);
}
for (i=1;i<10;i++)
for (j=0;j<10-i;j++)
{
if (strcmp(ren[j].name,ren[j+1].name)>=0)
{
strcpy(str,ren[j].name);
strcpy(ren[j].name,ren[j+1].name);
strcpy(ren[j+1].name,str);
}
}
printf ("按字典序的升序排序为:\n");
for (i=0;i<10;i++)
printf ("%s\n",ren[i].name);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-02-16
#include
<stdio.h>
#include
<string.h>
main()
{
char
a[10],t[10];
int
i,j;
for(i=0;i<10;i++)
{
printf("input:");
scanf("%s",a[i]);//输入
}
for(i=1;i<10;i++)//冒泡法
排序
for(j=0;j<10-i;j++)
if(strcmp(a[j],a[j+1])>0)
{
strcpy(t,a[j]);
strcpy(a[j],a[j+1]);
strcpy(a[j+1],t);
}
printf("Output:\n");
for(i=0;i<10;i++)
puts(a[i]);//输出
}
//
第2个回答  2009-05-19
#include <stdio.h>
#include <string.h>
main()
{
char a[10][10],t[10];
int i,j;
for(i=0;i<10;i++)
{
printf("input:");
scanf("%s",a[i]);//输入
}
for(i=1;i<10;i++)//冒泡法 排序
for(j=0;j<10-i;j++)
if(strcmp(a[j],a[j+1])>0)
{
strcpy(t,a[j]);
strcpy(a[j],a[j+1]);
strcpy(a[j+1],t);
}
printf("Output:\n");
for(i=0;i<10;i++)
puts(a[i]);//输出
}
//调试成功
第3个回答  2009-05-20
#include <stdio.h>
#include <string.h>
main()
{
char a[10],t[10];
int i,j;
for(i=0;i<10;i++)
{
printf("input:");
scanf("%s",a[i]);//输入
}
for(i=1;i<10;i++)//冒泡法 排序
for(j=0;j<10-i;j++)
if(strcmp(a[j],a[j+1])>0)
{
strcpy(t,a[j]);
strcpy(a[j],a[j+1]);
strcpy(a[j+1],t);
}
printf("Output:\n");
for(i=0;i<10;i++)
puts(a[i]);//输出
}
//本回答被提问者采纳
第4个回答  2009-05-19
#include <stdio.h>
#include <string.h>

#define NUM 10

void main()
{
char str[NUM][20];
char temp[20];

int i, j, t;

for (i = 0; i < NUM; ++i)
scanf("%s", str[i]);

for (i = 0; i < NUM - 1; ++i)
{
t = i;

for (j = i; j < NUM; ++j)
{
if (strcmp(str[t], str[j]) > 0)
t = j;
}

if (t != i)
{
strcpy(temp, str[i]);
strcpy(str[i], str[t]);
strcpy(str[t], temp);
}
}

for (i = 0; i < 10; ++i)
printf("%s ", str[i]);

putchar('\n');
}
相似回答