#include <bits/stdc++.h> using namespace std; string a; string b; int a1[501],b1[501],ab1[501]; int main() { cin>>a>>b; for(int i=a.size();i>=0;i--) { a1==a[i]; } for(int i=b.size();a>=0;i--) { b1==b[i]; } for(int i=max(a.size(),b.size()).size();i>=0;i--) { abi[i]+=(a[i]+b[i])%10; abi[i+1]+=(a[i]+b[i])/10; } for(int i=max(a.size(),b.size()).size();a>=0;i--) { while(ab1[i]==0) { i--; } cout<<ab1[i]; } } 有什么错
时间: 2024-04-17 14:23:40 浏览: 90
C++ using namespace std 详解
3星 · 编辑精心推荐
这段代码有几个错误:
1. 在第12行,应该将 `a1==a[i];` 改为 `a1[i] = a[i] - '0';`,将字符转换为整数。
2. 在第15行,应该将 `b1==b[i];` 改为 `b1[i] = b[i] - '0';`,将字符转换为整数。
3. 在第17行,将 `abi` 改为 `ab1`。
4. 在第18行,将 `a.size(),b.size()).size()` 改为 `max(a.size(),b.size())+1`,获取最大字符串长度。
5. 在第19行,将 `abi[i]+=(a[i]+b[i])%10;` 改为 `ab1[i]+=(a1[i]+b1[i])%10;`,将对应位置上的数字相加。
6. 在第20行,将 `abi[i+1]+=(a[i]+b[i])/10;` 改为 `ab1[i+1]+=(a1[i]+b1[i])/10;`,将进位加到下一位上。
7. 在第22行,将 `while(ab1[i]==0)` 改为 `while(i >= 0 && ab1[i]==0)`,以防止越界访问。
8. 在第24行,将 `cout<<ab1[i];` 改为 `cout<<ab1[i];i--;`,在输出数字后将 `i` 自减。
请注意以上修改,这样代码就可以正确运行了。
阅读全文