初级守护
谁有伪代码,不会
刘丹青在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;
}//顺便帮我看一下
高级光能
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;
- }
中级启示者
#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分代码,求采纳
中级天翼
其实我也不会
丁博扬在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追加了内容
家打错了
初级光能
我会:
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没有,如果没学,请勿尝试这一题@刘丹青
新手光能
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;
}
核心
新手光能
对每个字符串中的数字先按照顺序提取组成一个数字串,先按照数字串中各个数字的和从大到小排序,如果数字的和相同,再按照数字串的字典序从小到大排序,如果数字串的字典序相同,则按照原字符串的字典序从小到大进行排序。