早教吧作业答案频道 -->其他-->
下面这个程序是一个大数相加的程序,我在本机上运行完全正常,也考虑了很多特殊情况,为什么我一提交到AC上面就报结果错误呢?#include#includeusingnamespacestd;constintnumlen=1000;structbN{charnum1[nu
题目详情
下面这个程序是一个大数相加的程序,我在本机上运行完全正常,也考虑了很多特殊情况,为什么我一提交到AC上面就报结果错误呢?
#include
#include
using namespace std;
const int numlen=1000;
struct bN
{
char num1[numlen];
char num2[numlen];
char result[numlen];
};
struct bN bigNum[20]={0};
void main()
{
int T=0,n1_len=0,n2_len=0,loop_len=0;
int carry=0;
char num_a[numlen]={0},num_b[numlen]={0};
char cr[numlen]={0};
cin>>T;
if(T20) exit(0);
for(int i=0;i>bigNum[i].num1>>bigNum[i].num2;
for(int j=0;j n2_len n1_len :n2_len;
for(int k=0 ; k < loop_len ; k++)
{
if(loop_len==n1_len && k>=n2_len)
{
bigNum[j].result[k] = (int)num_a[k] + carry;
}
else if(loop_len==n2_len && k>=n1_len)
{
bigNum[j].result[k] = (int)num_b[k] + carry;
}
else
{
bigNum[j].result[k] = (int)num_a[k] + (int)num_b[k] + carry - '0';
}
if(bigNum[j].result[k] > '9')
{
carry = (bigNum[j].result[k]-'0')/10;
bigNum[j].result[k] -= 10;
if(k==loop_len-1 && carry!=0)
{
bigNum[j].result[k+1]=carry+'0';
carry=0;
}
}
else
{
carry=0;
}
}
memset(num_a,0,sizeof(num_a));
memset(num_b,0,sizeof(num_b));
}
for(int p=0 ; p
#include
#include
using namespace std;
const int numlen=1000;
struct bN
{
char num1[numlen];
char num2[numlen];
char result[numlen];
};
struct bN bigNum[20]={0};
void main()
{
int T=0,n1_len=0,n2_len=0,loop_len=0;
int carry=0;
char num_a[numlen]={0},num_b[numlen]={0};
char cr[numlen]={0};
cin>>T;
if(T20) exit(0);
for(int i=0;i>bigNum[i].num1>>bigNum[i].num2;
for(int j=0;j n2_len n1_len :n2_len;
for(int k=0 ; k < loop_len ; k++)
{
if(loop_len==n1_len && k>=n2_len)
{
bigNum[j].result[k] = (int)num_a[k] + carry;
}
else if(loop_len==n2_len && k>=n1_len)
{
bigNum[j].result[k] = (int)num_b[k] + carry;
}
else
{
bigNum[j].result[k] = (int)num_a[k] + (int)num_b[k] + carry - '0';
}
if(bigNum[j].result[k] > '9')
{
carry = (bigNum[j].result[k]-'0')/10;
bigNum[j].result[k] -= 10;
if(k==loop_len-1 && carry!=0)
{
bigNum[j].result[k+1]=carry+'0';
carry=0;
}
}
else
{
carry=0;
}
}
memset(num_a,0,sizeof(num_a));
memset(num_b,0,sizeof(num_b));
}
for(int p=0 ; p
▼优质解答
答案和解析
#include "iostream.h"
#include "string.h"
#include "process.h"
//using namespace std;
const int numlen=1000;
struct bN
{
char num1[numlen];
char num2[numlen];
char result[numlen];
};
struct bN bigNum[20]={0};
void main()
{
int T=0,n1_len=0,n2_len=0,loop_len=0;
int carry=0;
char num_a[numlen]={0},num_b[numlen]={0};
char cr[numlen]={0};
cin>>T;
if(T20) system("exit(0)");
for(int i=0;i>bigNum[i].num1>>bigNum[i].num2;
for(int j=0;j n2_len n1_len :n2_len;
for(int k=0 ; k < loop_len ; k++)
{
if(loop_len==n1_len && k>=n2_len)
{
bigNum[j].result[k] = (int)num_a[k] + carry;
}
else if(loop_len==n2_len && k>=n1_len)
{
bigNum[j].result[k] = (int)num_b[k] + carry;
}
else
{
bigNum[j].result[k] = (int)num_a[k] + (int)num_b[k] + carry - '0';
}
if(bigNum[j].result[k] > '9')
{
carry = (bigNum[j].result[k]-'0')/10;
bigNum[j].result[k] -= 10;
if(k==loop_len-1 && carry!=0)
{
bigNum[j].result[k+1]=carry+'0';
carry=0;
}
}
else
{
carry=0;
}
}
memset(num_a,0,sizeof(num_a));
memset(num_b,0,sizeof(num_b));
}
for(int p=0 ; p
#include "string.h"
#include "process.h"
//using namespace std;
const int numlen=1000;
struct bN
{
char num1[numlen];
char num2[numlen];
char result[numlen];
};
struct bN bigNum[20]={0};
void main()
{
int T=0,n1_len=0,n2_len=0,loop_len=0;
int carry=0;
char num_a[numlen]={0},num_b[numlen]={0};
char cr[numlen]={0};
cin>>T;
if(T20) system("exit(0)");
for(int i=0;i>bigNum[i].num1>>bigNum[i].num2;
for(int j=0;j n2_len n1_len :n2_len;
for(int k=0 ; k < loop_len ; k++)
{
if(loop_len==n1_len && k>=n2_len)
{
bigNum[j].result[k] = (int)num_a[k] + carry;
}
else if(loop_len==n2_len && k>=n1_len)
{
bigNum[j].result[k] = (int)num_b[k] + carry;
}
else
{
bigNum[j].result[k] = (int)num_a[k] + (int)num_b[k] + carry - '0';
}
if(bigNum[j].result[k] > '9')
{
carry = (bigNum[j].result[k]-'0')/10;
bigNum[j].result[k] -= 10;
if(k==loop_len-1 && carry!=0)
{
bigNum[j].result[k+1]=carry+'0';
carry=0;
}
}
else
{
carry=0;
}
}
memset(num_a,0,sizeof(num_a));
memset(num_b,0,sizeof(num_b));
}
for(int p=0 ; p
看了下面这个程序是一个大数相加的程...的网友还看了以下:
信息系统开发策略的制定必须考虑很多问题,以下不应该作为制定开发策略时重点考虑的问题是A.加强 2020-05-23 …
开发策略的制定必须考虑很多问题,但下面哪个问题可以不考虑?A.企业必须建立信息系统总体规划B.企 2020-05-24 …
开发策略的制定必须考虑很多问题,,但是下面的()的问题可以不予考虑。A.企业必须建立信息系统的总 2020-05-24 …
开发策略的制定必须考虑很多问题,但是下面的()的问题可以不予考虑。A.企业必须建立信息系统的总体 2020-05-24 …
开发策略的制定必须考虑很多问题,但下面()的问题可以不考虑。A.企业必须建立信息系统总体规划B.必 2020-05-24 …
开发策略的制定必须考虑很多问题,但下面()的问题可以不考虑。A.建立畅通的信息通道B.企业必须建立 2020-05-24 …
有个成语是形容每走一步,都要考虑大局.例如步步为营,如履薄冰,反正就是形容每一步都很艰难,要考虑很 2020-06-08 …
单一问题繁琐化如果懂心理学的高人给我指点一下,我总是考虑别人的感受,不断同理别人,从大局观考虑,很 2020-06-29 …
生死狙击中一句台词的原句超长距离狙击要考虑很多因素,温度、湿度、风向都会影响射击精度,子弹在空中飞行 2020-11-05 …
我发现自从我上高中以后,我感觉理解能力下降了,不知什么原因?有时生活中常用的句子或短语都要考虑很长时 2020-11-24 …