时隔一个月!!!成功!!!ohhhhhh
2023-12-23 16:14:53
发布于:广东
60阅读
0回复
0点赞
找到问题了,在cmp函数里如果a[i]<b[i]会跳过,不会判断小于
AC题解
#include <iostream>
#include <cstring>
using namespace std;
bool cmpp(char a[], char b[], int len){//判断是否相等
for(int i = 0; i < len; i++){
if(a[i] != b[i]) return 0;
}return 1;
}
bool cmp(char a[], char b[], int len){//判断大小
for(int i = 0; i < len; i++){
//cout << int(a[i]) << ' ' << int(b[i]) << endl;
if(a[i] > b[i]){
//cout << a[i] << ' ' << b[i];
return 1;
}else if(a[i] < b[i])return 0;//之前就这里错了!!!
}
}
int main(){
string a, b;
cin >> a >> b;
char a1[1005] = {0}, b1[1005] = {0};
bool flag1 = 0, flag2 = 0;
int ct1 = 0, ct2 = 0;
for(int i = 0; i < a.length(); i++){
if(a[i] == '.') break; //去除小数点
if(!flag1 && a[i] != '0') flag1 = 1;//去除前导0
if(flag1) a1[ct1++] = a[i];
}for(int i = 0; i < b.length(); i++){
if(b[i] == '.') break;
if(!flag2 && b[i] != '0') flag2 = 1;
if(flag2) b1[ct2++] = b[i];
}
//cout << a1 << endl << b1 << endl;
if(cmpp(a1, b1, max(strlen(a1), strlen(b1)))) cout << '=';
else if(strlen(a1) > strlen(b1) || strlen(a1) == strlen(b1) && cmp(a1, b1, strlen(a1))) cout << '>';
else cout << '<';
}
全部评论 6
字符串处理是真头疼。虽然但是,这道题直接用int存一下判断也没问题吧。
2023-12-23 来自 浙江
1我想c你
2023-12-24 来自 广东
0?
2023-12-24 来自 浙江
0完了号被盗了啊啊啊啊啊啊啊啊啊
2023-12-24 来自 广东
0
不是
这样:
#include<iostream>
using namespace std;
void max(int a,int b){
if(a>b) cout<<">";
else if(a==b) cout<<"=";
else cout<<'<';
}
int main(){
int a,b;
cin>>a>>b;
max(a,b);
}2024-03-12 来自 广东
0顶
2023-12-24 来自 广东
0我想c你
2023-12-24 来自 广东
0啊?byd我的第二人格是吧
2023-12-24 来自 广东
0
6没人看
2023-12-23 来自 广东
0poor
2023-12-23 来自 广东
0?
2023-12-23 来自 广东
0我想c你
2023-12-24 来自 广东
0
顶
2023-12-21 来自 广东
0
有帮助,赞一个