问题标题: 酷町堂:急急急!!!快递分拣 代码找错(这是考试题,别举报!!!求求啦!!!)

0
0
已解决
被禁言 杜明泽
杜明泽
资深守护
资深守护

 

双十一刚过,快递中心十分繁忙。请你帮忙编写一个程序来分拣快递:已知快递的收货地址是一个字符串(不含空格),现在有n件快递。请你按照收货地址的首字母ascii码值从小到大给快递进行排序。如果首字母相同则按照字符串长度从小到大排序,字符串长度也相同则按照字符串字典序从小到大排序,并输出。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<string>
#include<algorithm>
using namespace std;
string a,b,s,s1="12345";
int main(){
	getline(cin,a);
	getline(cin,b);
	s=a.substr(4,3);
	int p=b.find(s);
	if(p=-1){
		cout<<-1;
	} 
	else{
		b.erase(p,3);
		b.insert(p,s1);
		cout<<b;
	}
	return 0;
} 

 

杜明泽在2021-08-17 20:21:24追加了内容

给定两个含空格的字符串a和b,截取字符串a第3个位置开始的3个字符作为子串,如果字符串b中也有相同的子串,则将在b中找到的第一个相同的子串替换为"12345",输出替换后的字符串b#include<iostream>
#include<cstdio>
#include<cmath>
#include<string>
#include<algorithm>
using namespace std;
string a,b,s,s1="12345";
int main(){
    getline(cin,a);
    getline(cin,b);
    s=a.substr(4,3);
    int p=b.find(s);
    if(p=-1){
        cout<<-1;
    } 
    else{
        b.erase(p,3);
        b.insert(p,s1);
        cout<<b;
    }
    return 0;
} ,如果字符串b中没有相同的子串,则输出-1。


0
已采纳
朱小川
朱小川
缔造者
缔造者

函数

string s[105];
bool cmp(string a,string b){
    if(a[0]!=b[0]) return a[0]<b[0];
    if(a.size()!=b.size()) return a.size()<b.size();
    return a<b;
}

主函数核心

for(int i=1;i<=n;i++){
cin>>s[i];
}
sort(s+1,s+n+1,cmp);
for(int i=1;i<=n;i++){
cout<<s[i]<<endl;
}

1
潘艺博
潘艺博
初级天翼
初级天翼

好家伙好家伙,胆子也忒大了吧

原因我就不说了

1
程子萱
程子萱
资深守护
资深守护

和我们考试题一样啊!

0
0
0
朱小川
朱小川
缔造者
缔造者

最后一题

函数

double a[105];
bool cmp(double a,double b){
    if(a[0]!=b[0]) return a[0]<b[0];
    if(a.size()!=b.size()) return a.size()<b.size();
    return a<b;
}

主函数核心

for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    sort(a+1,a+n+1,cmp);
    for(int i=1;i<=n;i++){
        cout<<a[i]<<endl;
    }

 

0
0
我要回答