标题:请问一个数组名加上另一个数组中的元素是什么意思
只看楼主
komorebi0110
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:145
专家分:17
注 册:2019-11-23
结帖率:96.88%
已结贴  问题点数:10 回复次数:7 
请问一个数组名加上另一个数组中的元素是什么意思
程序代码:
#include<iostream>
#include<algorithm>
using namespace std;
int fun(string a, string b){
    if(a.length() == b.length()){
        //do nothing
    }
    else if(a.length() > b.length()){
        int dlen = a.length() - b.length();
        for(int i = 0; i < dlen; i++){
            b += a[i];
        }
    }
    else{
        int dlen = b.length()-a.length();
        for(int i = 0; i < dlen; i++){
            a += b[i];
        }
    }
    return a > b;
}
int main(){
    int n;
    string arr[30];
    cin >> n;
    for(int i = 0; i < n; i++){
        cin >> arr[i];
    }
    sort(arr, arr + n, fun);
    for(int i = 0; i < n; i++){
        cout << arr[i];
    }
    return 0;
}
搜索更多相关主题的帖子: 一个数 int length for i++ 
2020-03-18 04:23
komorebi0110
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:145
专家分:17
注 册:2019-11-23
得分:0 


如果71 712的话应该会输出71712

我想要两颗西柚。
2020-03-18 04:24
komorebi0110
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:145
专家分:17
注 册:2019-11-23
得分:0 
题目好像有点问题,好像不是数组名...string a 是什么意思也请问一下qaq

我想要两颗西柚。
2020-03-18 05:19
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:554
专家分:3690
注 册:2019-7-29
得分:3 
程序代码:
#include<iostream>
#include<algorithm>
using namespace std;
int fun(string a, string b)
{
    return a > b;
}
int main()
{
    int n;
    string arr[30],str;
    cin >> n;
    for(int i = 0; i < n; i++)
    {
        cin >> arr[i];
    }
    sort(arr, arr + n, fun);
    for(int i = 0; i < n; i++)
    {
        str.append(arr[i]);
    }
    cout << str;
    return 0;
}

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2020-03-18 09:21
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
得分:0 
回复 3楼 komorebi0110
string型呀,字符串

2020-03-18 09:25
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
得分:3 
这是string的特性,用+=嵌插

2020-03-18 09:48
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:4 
看你的 int fun(string a, string b) 实现,直接用 return ( 0, std::min(a.size(),b.size()), b ); 就行了
看你在2楼的题目,你这算法错误呀,比如 "23" 应该在 "231" 之前,但 "23" 却不应该在 "234" 之前。

我帮你改一下
程序代码:
#include <iostream>
#include <iterator>
#include <algorithm>
#include <string>
using namespace std;

int main( void )
{
    size_t n;
    cin >> n;

    string arr[20];
    copy_n( std::istream_iterator<string>(cin), n, arr );

    sort( arr, arr+n, [](const auto& a,const auto& b){ return a+b>b+a;} );

    copy_n( arr, n, ostream_iterator<string>(cout,"") );
}

收到的鲜花
  • 纯蓝之刃2020-03-18 10:19 送鲜花  2朵   附言:a+b&gt;b+a; 牛
2020-03-18 10:07
komorebi0110
Rank: 2
来 自:上海
等 级:论坛游民
帖 子:145
专家分:17
注 册:2019-11-23
得分:0 
非常感谢!

我想要两颗西柚。
2020-03-18 15:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-500400-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029553 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved