回 帖 发 新 帖 刷新版面

主题:大虾   来看看

输入n个单词,将它们(不区分大小写)顺序从小到大排列并输出:(类似英文字典排序)

我的代码是
#include<iostream>
#include<cmath>
#include<string.h>
using namespace std;
int main()
{
    char a[101][100];
    char b[101][100];
    char (*p)[100];
    p=a;
    int n,i,j,k,t,m,len1,len2;
    cin>>n;
    for(i=1;i<=n;i++)
    cin>>a[i];
    for(i=1;i<n;i++)
    for(j=1;j<=n-i;j++)
    {
    k=1;
    len1=strlen(a[j]);
    len2=strlen(a[j+1]);
    if(len1==len2)
    {
    for(t=0;t<len1;t++)
    if(*(*(p+j)+t)!=(*(*(p+j+1)+t)+32) && *(*(p+j)+t)!=(*(*(p+j+1)+t)-32) && *(*(p+j)+t)!=*(*(p+j+1)+t))
    {k=0;break;}
    if(k==1)
    continue;
    else
    if(strcmp(a[j],a[j+1])>0)
    {strcpy(b[j],a[j]);
    strcpy(a[j],a[j+1]);
    strcpy(a[j+1],b[j]);
                             }
                             }
    else
    if(strcmp(a[j],a[j+1])>0)
    {
    strcpy(b[j],a[j]);
    strcpy(a[j],a[j+1]);
    strcpy(a[j+1],b[j]);
     }
}
      for(i=1;i<=n;i++)
      cout<<a[i]<<endl;
           return 0;
}
但是遇到如输入array,ARRAY,aaaaa,AAAAA就不能比较了。。。。。。。。。求解释

回复列表 (共1个回复)

沙发


#include <cstdlib>
#include <iostream>
#include <string>

using namespace std;

int main()
{
    char str[100][100],temp[100],str_temp[100][100];
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
    {cin>>str[i];strcpy(str_temp[i],str[i]);}
   
        
    for(int i=0;i<n;i++)
    {    for(int k=0;k<strlen(str_temp[i]);k++)
         {
             if(str_temp[i][k]>='A'&&'Z'>=str_temp[i][k])
                 str_temp[i][k]+=32;
         }
    }
    for(int i=0;i<n-1;i++)
    {
        for(int j=i+1;j<n;j++)
        { 
            if(strcmp(str_temp[i],str_temp[j])>0)
            {
                strcpy(temp,str[i]);
                strcpy(str[i],str[j]);
                strcpy(str[j],temp);
                strcpy(temp,str_temp[i]);
                strcpy(str_temp[i],str_temp[j]);
                strcpy(str_temp[j],temp);
            }                    
        }
    }
    
    for(int i=0;i<n;i++)
        cout<<str[i]<<endl;

    return 0;
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册