输入n个字符串然后从小到大排序

#include<iostream>#include<string>usingnamespacestd;voidmain(){stringt,c,b,d;cout<<"p... #include <iostream>
#include <string>
using namespace std;
void main( )
{string t,c,b,d;
cout<<"please input n: "<<endl;
int i,n,k,j;
cin>>n;
cout<<"please input strings: ";
char a[30][30];
for(i=0;i<n;i++)
cin>>a[i];
cout<<endl;
for(i=0;i<n-1;i++)
{k=i;
for(j=i+1;j<n;j++)
{c=a[j];b=a[k];d=a[i];
if(c<b) k=j;
t=b;b=d;d=t;}}
for(i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;}

这个是我码的代码,然后输入什么输出就是什么……我知道我是错在排序那部分不能用数组来直接比较排序,但是字符串怎么排序……应该怎么改,麻烦解释一下然后说一下排序部分应该怎么改。我用的是选择排序法排的虽然排错了…………
还有,用C++语言吧C语言那些什么printf不懂,还有不要直接用现成的排序函数我还没学呢……
诶有人帮帮忙么…………
展开
 我来答
缪立军
2013-05-13 · TA获得超过384个赞
知道小有建树答主
回答量:257
采纳率:100%
帮助的人:169万
展开全部
字符串比大小:
int strcmp(s1,s2)//s1、s2两个字符串
说明:
当s1<s2时,返回值<0
当s1==s2时,返回值=0
当s1>s2时,返回值>0
头文件:string.h

希望能帮到你!
追问
什么意思?那应该怎么改?
追答
#include <iostream>
#include <string>
using namespace std;
void main( )
{
    cout<<"please input n: "<<endl;
    int i,j,n;
    cin>>n;
    cout<<"please input strings: ";
    char a[30][30];
    char temp[30];
    int inde;
    for(i=0;i<n;i++)
        cin>>a[i];
    cout<<endl;
    for (i=0;i<n;i++)
    {
        inde = i;
        strcpy(temp,a[i]);
        for (j=i;j<n;j++)
        {
            if (strcmp(a[j],temp)>0)
            {
                inde = j;
                strcpy(temp,a[j]);
            }
        }
        strcpy(a[inde],a[i]);
        strcpy(a[i],temp);
    }
    for(i=0;i<n;i++)
        cout<<a[i]<<" ";
    cout<<endl;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式