输入5个字符串,将这5个字符串按从小到大的顺序排列后输出(要求使用选择法排序)。

要求用二维字符数组存放这5个字符串,用指针数组元素分别指向这5个字符串。
输入/输出示例:
输入5个字符串:
int
double
char
string
long
字符串排序后为:
char
double
int
long
string

#include<iostream>

#include<string>

usingnamespacestd;

intmain()

stringa1[5];//定义一个字符串数组。

cin>>a1[0]>>a1[1]>>a1[2]>>a1[3]>>a1[4];

inti,j;

stringform;

for(i=0;i<4;i++)//通过冒泡排序进行排序

for(j=0;j<4-i;j++)

if(a1[j]>a1[j+1])

form=a1[j];

a1[j]=a1[j+1];

a1[j+1]=form;

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

cout<<a1[i]<<endl;

system("pause");

return0;

扩展资料:

printf用法:

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

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

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

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

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-12-19

#include<stdio.h>
#include<string.h>
int main ()
{char s[5][100],*p[5],*t;
 int n=5,i,j,k;
 scanf("%d\n",&n);
 for(i=0;i<n;i++)
   {gets(s[i]);
    p[i]=s[i];
   }
 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;
  t=p[i]; p[i]=p[k]; p[k]=t;
 }
 printf("======\n");
 for(i=0;i<n;i++)
   puts(p[i]);
 return 0;
}

本回答被提问者和网友采纳
相似回答