问题标题: 酷町堂:4864

0
0
已解决
刘丹青
刘丹青
初级守护
初级守护

谁有伪代码,不会

刘丹青在2020-07-21 14:05:54追加了内容

@王俊杰

刘丹青在2020-07-21 14:10:27追加了内容

#include<iostream>
#include<cstdio>
using namespace std;
int max(double a,double b,double c){
    if(a+b>c)
        return a+b;
    return c;
}
int max1(double a,double b,double c){
    if(b+c>a)
        return b+c;
    return c;
}
int max2(double a,double b,double c){
    if(a>b&&a>c)
        return a;
    if(b>a&&b>c)
        return b;
    return c;
}
int main(){
    double a,b,c,m;
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a>>b>>c;
        m=max(a,b,c)*max1(a,b,c)/max2(a,b,c);
        printf("%.2f",m);
    }
    return 0;
}//顺便帮我看一下


0
已采纳
王俊杰
王俊杰
高级光能
高级光能

int max(double a,double b,double c){
    if(a+b>c)
        return a+b;
    return c;
}
int max1(double a,double b,double c){
    if(b+c>a)
        return b+c;
    return c;
}
int max2(double a,double b,double c){
    if(a>b&&a>c)
        return a;
    if(b>a&&b>c)
        return b;
    return c;
}

改为

  • int qh(string s){
  • int cnt=0;
  • for(int i=0;i<=s.size()-1;i++){
  • if(s[i]>='0'&&s[i]<='9'){
  • cnt+=s[i]-'0';
  • }
  • }
  • return cnt;
  • }
  • string tq(string s){
  • string c="";
  • for(int i=0;i<=s.size()-1;i++){
  • if(s[i]>='0'&&s[i]<='9'){
  • c+=s[i];
  • }
  • }
  • return c;
  • }
  • bool cmp(string x,string y){
  • if(qh(x)!=qh(y)) return qh(x)>qh(y);
  • if(tq(x)!=tq(y)) return tq(x)<tq(y);
  • return x<y;
  • }
1
李显晨
李显晨
中级启示者
中级启示者
#include<iostream>
#include<cstdio>
#include<string>
#include<algorithm>
#include<cmath>
using namespace std;
string a[10010];
string tq(string s){
 string z;
 for(int i=0;i<s.size();i++){
  if(s[i]>='0'&&s[i]<='9') z=z+s[i];
 }
 return z;
} 
int sz(string z){
 int sum=0;
 for(int i=0;i<z.size();i++){
    if(z[i]>='0'&&z[i]<='9') 
        sum+=z[i]-'0';
 }
 return sum;
}
bool cmp(string x,string y){
 if(sz(x)!=sz(y)) return sz(x)>sz(y);
 else if(tq(x)!=tq(y)) return tq(x)<tq(y);
 return x<y;
}
int main(){
 int n;
 cin>>n;
 getline(cin,a[0]);
 for(int i=1;i<=n;i++){
  getline(cin,a[i]);
 }
 sort(a+1,a+n+1,cmp);
 for(int i=1;i<=n;i++){
  cout<<a[i]<<endl;
 }
 return 0;
}

100分代码,求采纳

1
丁博扬
丁博扬
中级天翼
中级天翼

其实我也不会

丁博扬在2020-07-21 14:04:59追加了内容

你可以参照

对每个字符串中的数字先按照顺序提取组成一个数字串,先按照数字串中各个数字的和从大到小排序,如果数字的和相同,再按照数字串的字典序从小到大排序,如果数字串的字典序相同,则按照原字符串的字典序从小到大进行排序。

这些来做,我也不会,555

丁博扬在2020-07-21 14:06:15追加了内容

循环(int i=0;i<s.size();i++){
        if(是s[i]是数字){
            c+=s[i];
        }
    }

来做,我也只会这么一点

丁博扬在2020-07-21 14:06:46追加了内容

呼叫朱佳烨

丁博扬在2020-07-21 14:07:12追加了内容

顺便给一下4905代码吧,谢谢了

丁博扬在2020-07-21 14:07:39追加了内容

家打错了

1
尤博扬
尤博扬
初级光能
初级光能

我会:

    first:写一个函数循环遍历这个字符串中的所有数字之和(如果是数字累加这个数-‘0’)

    second:再写一个函数 遍历这个字符串 如果不是数字 擦除这个字符 下标--

    third:写cmp函数 由于上面的函数改变了字符串,需要在cmp函数中再定义两个字符串用来存数字串 然后比较

核心代码:

if(w[i]>='0'&&w[i]<='9')
        {
            sum+=w[i]-'0'; 
        } 

函数一的重点

if(w[i]>=' '&&w[i]<='/'||w[i]>=':'&&w[i]<='~')
        {
            w.erase(i,1);
            i--;
        }
           

函数2的重点

h=zfc2(x);
k=zfc2(y);h=zfc2(x);

cmp 的重点

比较自己写

不知道你学了sort没有,如果没学,请勿尝试这一题@刘丹青

0
邵悦媛
邵悦媛
新手光能
新手光能
string tq(string s){
 string z;
 for(int i=0;i<s.size();i++){
  if(s[i]>='0'&&s[i]<='9') z=z+s[i];
 }
 return z;
} 
int sz(string z){
 int sum=0;
 for(int i=0;i<z.size();i++){
    if(z[i]>='0'&&z[i]<='9') 
        sum+=z[i]-'0';
 }
 return sum;
}
bool cmp(string x,string y){
 if(sz(x)!=sz(y)) return sz(x)>sz(y);
 else if(tq(x)!=tq(y)) return tq(x)<tq(y);
 return x<y;
}

核心

0
吴文光
吴文光
新手光能
新手光能

对每个字符串中的数字先按照顺序提取组成一个数字串,先按照数字串中各个数字的和从大到小排序,如果数字的和相同,再按照数字串的字典序从小到大排序,如果数字串的字典序相同,则按照原字符串的字典序从小到大进行排序。

0
0
0
0
我要回答