1 条题解

  • 0
    @ 2025-2-14 20:57:47

    C :

    #include <stdio.h>
    #include <string.h>
    struct Ch
    {
    	char str[100];
    	int l;
    };
    int main()
    {
    	void sort(struct Ch a[],int m);
    	struct Ch a[1000];
    	int i,n,m;
    	char b[5]={"stop"}; 
    	while (scanf ("%d",&n)!=EOF)
    	{
    		m=0;
    		getchar();
    		for (i=0;i<n;i++)
    		{
    			gets(a[i].str);
    			if (strcmp(b,a[i].str)==0) break;
    			m++;
    			a[i].l=strlen(a[i].str);
    			a[i].str[a[i].l]='\0';
    		}
    		sort(a,m);
    		for (i=0;i<m;i++)
    			puts(a[i].str);
    	}
    	return 0;
    }
    void sort(struct Ch a[],int m)
    {
    	int i,j;
    	struct Ch t;
    	for (i=0;i<m-1;i++)
    		for (j=0;j<m-1-i;j++)
    			if (a[j].l>a[j+1].l)
    			{
    				t=a[j]; a[j]=a[j+1]; a[j+1]=t;
    			}
    }
    

    C++ :

    //我这个是ac了的
    
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    typedef struct{
    string str;
    int len;
    }Sqstack; //随便取得名字
    
    int main()
    {
            int n;
            Sqstack *a[1000];
            while(cin>>n){
    		if(n==0) return 0; 
            cin.ignore();//后面有getline函数一定要ingnore
            string s;
            for(int i=0;i<n;i++)
            {
                    getline(cin,s);
                    if(s=="stop")
                    {
                            n=i;
                            break;
    
                    }
    
                    else{
                    a[i]=new Sqstack;
                    a[i]->str=s;
                    
                    a[i]->len=s.length();
                    }
            }//(for)
    
            Sqstack *b;
            for(int i=0;i<n;i++)
                    for(int j=0;j<(n-1);j++)
                    {
                            if((a[j]->len)>(a[j+1]->len))
                            {
                                    b=a[j];
                                    a[j]=a[j+1];
                                    a[j+1]=b;
                            }
                                
                    }
            
    
    for(int i=0;i<n;i++)
            {
                    cout<<a[i]->str<<endl;
            }
    }//(while)
            return 0;
    }
    
    • 1

    信息

    ID
    541
    时间
    1000ms
    内存
    32MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者