输入5个字符串,按由小到大的顺序输出(用指针做)

如题所述

#include<stdio.h>

#include<string.h>

main()

{

int i,j;

char t[5];

char a[5][5]={'\0'};

printf("输入5个字符串");

for(i=0;i<5;i++)

scanf("%s",&a<i>);

for(i=0;i<5;i++)

for(j=0;j<5-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("比较大小后:\n");

for(i=0;i<5;i++)

printf("%s\n",a<i>);

}

扩展资料:

printf用法:

1、printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。

格式输出,它是c语言中产生格式化输出的函数(在stdio.h中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。

要输出的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。

简单点理解就是,在一段程序中你正确使用该函数,可以在该程序运行的时候输出你所需要的内容。

2、printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用printf函数之前必须包含stdio.h文件。

printf()函数的调用格式为:printf("<格式化字符串>",<参量表>)。

其中格式化字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-03-07
//尝试使用结构体做一下

#include<stdio.h>
struct friend
{
char name[81];
}b[5], t;

int main()
{
int n=5, i, j;

scanf ("%s %s %s %s %s",b[0].name,b[1].name,b[2].name,b[3].name,b[4].name);

for (i=0; i<n-1; i++)
for (j=0; j<n-i-1; j++)
{
if (b[j].name[0] > b[j+1].name[0])
{
t = b[j];
b[j] = b[j+1];
b[j+1] = t;
}
}

for (i=0; i<n; i++)
printf ("%s\n",b[i].name);

return 0;
}
第2个回答  推荐于2018-02-27
#include<stdio.h>
#include<string.h>
#define M 5
#define N 20

void main()
{
char str[M][N],temp[N];
int i,j;
for(i=0;i<M;i++)
{
printf("请输入第%d个字符串:",i+1);
scanf("%s",(str+i));
}
printf("排序前:\n");
for(i=0;i<M;i++)
printf("第%d个字符串:%s\n",i+1,*(str+i));
for(j=0;j<M-2;j++)
{
for(i=0;i<=M-j-1;i++)
if(strcmp(*(str+i),*(str+i+1))>0)
{
strcpy(temp,*(str+i));
strcpy(*(str+i),*(str+i+1));
strcpy(*(str+i+1),temp);
}
}
printf("排序后:\n");
for(i=0;i<M;i++)
printf("第%d个字符串:%s\n",i+1,*(str+i));
}本回答被提问者和网友采纳
相似回答