|
|
发表于 2023-11-27 20:39:43
|
显示全部楼层
本帖最后由 柿子饼同学 于 2023-11-27 20:41 编辑
你代码的问题如下 :
第 27 行的 b[k + i] 应改成 b[k + j]
10 - 17行最好加一个判断防止越界
22 行的 flag 不需要 , 因为后面判断出大小之后是直接 return 0 的 , 之后就没了 , 所以判断完如果全相等就直接输出相等
下面是我修改的代码 :
- #include <bits/stdc++.h>
- using namespace std;
- string a, b;
- int l, r, i, j;
- int main(){
- ios::sync_with_stdio(0);
- cin.tie(0);
-
- cin >> a >> b;
- l = a.size();
- r = b.size();
- while(i < l && a[i] == '0') i++;
- while(j < r && b[j] == '0') j++;
- if(l - i < r - j) cout << "<\n";
- else if(l - i > r - j) cout << ">\n";
- else{
- for(int k = 0; k < l - i; k++){
- if(a[k + i] != b[k + j]){
- if(a[k + i] < b[k + i]) cout << "<\n";
- else cout << ">\n";
- return 0;
- }
- }
- cout << "=\n";
- }
-
- return 0;
- }
复制代码 |
|