超大数减法计算C++代码——我的代码错了吗?

可以减数大于被减数的减法计算。#include<iostream>#include<istream>#include<ostream>#include<sstream>#... 可以减数大于被减数的减法计算。
#include<iostream>
#include<istream>
#include<ostream>
#include<sstream>
#include<cstdio>
#include<ctime>
#include<cmath>
#include<cstring>
#include<string>
using namespace std;
int main()
{
char r[300],t[300];
int k[300]={0},kl=0,r2[300]={0},t2[300]={0};
cout<<"输入数字————被减数:";
cin.get(r,300);
cin.get();
cout<<"输入数字————减数:";
cin.get(t,300);
cin.get();
cout<<endl;
int n=strlen(r),m=strlen(t);
for(int i=0;i<n;i++){
r2[i]=r[i]-'0';
}
for(int i=0;i<m;i++){
t2[i]=t[i]-'0';
}
cout<<"char转换int:\n被减数:";
for(int i=0;i<m;i++)cout<<r[i];
cout<<endl<<" 减数:";
for(int i=0;i<m;i++)cout<<t[i];
cout<<endl;
cout<<"开始运算······"<<endl;
if(n>m){
cout<<"正常运算。"<<endl;
for(int i=n-1,j=0;i>=0;i--,j++){
k[j]=r[i];
}
for(int i=0;i<m;i++){
if(k[i]-t2[i]>=0){
k[i]=k[i]-t2[i];
}else{
k[i]=k[i]+10;
k[i+1]=k[i+1]-1;
k[i]=k[i]-t2[i];
}
}
}else if(m<n){
cout<<"负数运算。"<<endl;
for(int i=m-1,j=0;i>=0;i--,j++){
k[j]=t[i];
}
for(int i=0;i<n;i++){
if(k[i]-r2[i]>=0){
k[i]=k[i]-r2[i];
}else{
k[i]=k[i]+10;
k[i+1]=k[i+1]-1;
k[i]=k[i]-r2[i];
}
}
}else{
int a=0;
for(int i=n-1;i>=0;i--){
if(r2[1]<t2[i]){
a=1;
break;
}

}
if(a==0){
cout<<"正常运算。"<<endl;
for(int i=0;i<n;i++){
if(k[i]-t2[i]>=0){
k[i]=k[i]-t2[i];
}else{
k[i]=k[i]+10;
k[i+1]=k[i+1]-1;
k[i]=k[i]-t2[i];
}
}
}else{
cout<<"负数运算。"<<endl;
for(int i=0;i<m;i++){
if(k[i]-r2[i]>=0){
k[i]=k[i]-r2[i];
}else{
k[i]=k[i]+10;
k[i+1]=k[i+1]-1;
k[i]=k[i]-r2[i];
}
}
}
}
cout<<"任意键查看运算结果!"<<endl;
cin.get();
int hhyy=n;
if(m>n)hhyy=m;
for(int i=0;i<hhyy;i++){
cout<<k[i];
}
cout<<endl;
return 0;
}
请大神帮忙!
急急急急急急急急急!!!!!!!!!!
展开
 我来答
lusir
2019-05-10 · 知道合伙人IT服务行家
lusir
知道合伙人IT服务行家
采纳数:89 获赞数:166
网络工程师,DCS开发核心工程师,公司研发先进

向TA提问 私信TA
展开全部
兄弟,我只能说这里面逻辑错误很多,还需要解决的话,进一步私聊讨论吧。
重点提示:整型数组中元素是从高数位开始存的,比如说r2[n-1]是个位数,r2[0]是最高位数,你好像程序里处理反了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式