文章

49

粉丝

140

获赞

27

访问

15.9k

头像
大整数加法 题解:求大佬帮忙看看,一直显示栈溢出错误 50%
P1474 武汉大学2018年机试题
发布于2024年1月28日 13:26
阅读数 371

#include <iostream>
#include <string.h>
using namespace std;
int main(){
	char a[100][1200];
	char b[100][1200];
	char cc[100][1200];
	int len;
	for(int j=0;j<100;j++){
	for(int i=0;i<1200;i++){
		a[j][i]=0;
		b[j][i]=0;
		cc[j][i]=0;
	}
	}
	int c=0;
	while(1){
cin >> a[c] >> b[c];
		if(!(a[c][0]>='0'&&a[c][0]<='9'))
			break;
		if(!(b[c][0]>='0'&&b[c][0]<='9'))
			break;
		len =strlen(a[c]);
		for(int i=len-1;i>0;i--){//从最后一个,即个位数字往前输出
			if((a[c][i]-'0'+b[c][i]-'0')>9){// 8999 0001  9000
			
				cc[c][i-1]='1';
			if(cc[c][i]!=0)
				cc[c][i]=cc[c][i]+a[c][i]-'0'+b[c][i]-'0'-10;
			else
				cc[c][i]=a[c][i]-'0'+b[c][i]-10;
			}
			else{
			if(cc[c][i]!=0){

				cc[c][i]=cc[c][i]+a[c][i]-'0'+b[c][i]-'0';
			if(cc[c][i]>'9')
			{
				if(cc[c][i-1]!=0)
					cc[c][i-1]=cc[c][i-1]+1;
				else
					cc[c][i-1]='1';
				cc[c][i]=cc[c][i]-10;
			}
			}
			else
					cc[c][i]=a[...
登录查看完整内容


登录后发布评论

4 条评论
snake
2024年1月28日 13:58

你的写法好奇怪。。多组数据输入不是这么做的,建议看一下其它同学的题解。

Runtime Error的意思是数组越界了,可能是数组下标太大也可能数组下标小于0导致的。

赞(0)

孙某人 : 回复 snake: 我用while(cin >>)那种写法做了一遍还是50%

2024年1月29日 13:00

snake : 回复 孙某人: 不需要用二维数组

2024年1月29日 13:14

孙某人 : 回复 snake: 收到,回去再试试

2024年2月1日 21:26