吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3990|回复: 5
收起左侧

[C&C++ 转载] 杭电1002 纯c代码

[复制链接]
混血王子 发表于 2018-2-16 15:53
[C] 纯文本查看 复制代码
#include<stdio.h>
#include<string.h>
char a[1005],a1[1005];
char b[1005],b1[1005];
int main()
{
	int t,n=0;	
	int i,j;

	scanf("%d",&t);
	while(t--)
	{
		n++;
		scanf("%s",a);
		scanf("%s",b);
		strcpy(a1,a);
		strcpy(b1,b);

		int _a,_b;
		_a=strlen(a);
		_b=strlen(b);
		
		if(_a>_b)
		{
			
			for(i=_a-1,j=_b-1;j>=0;i--,j--)
			{
				a[i]=a[i]+b[j]-'0';
				if(a[i]>'9')
				{
					a[i]-=10;
					a[i-1]+=1;
				}
			}
			for(;i>=0;i--)
			{
				if(i==0&&a[0]>'9')
				{
					a[0]-=10;
					for(int o=_a;o>0;o--)
					{
						a[o]=a[o-1];
					}
					a[0]='1';
				}
				if(a[i]>'9')
				{
					a[i]-=10;
					a[i-1]+=1;
				}
			}
		}

		else
		{
			for(i=_a-1,j=_b-1;i>=0;i--,j--)
			{
				b[j]=b[j]+a[i]-'0';
				if(b[j]>'9')
				{
					b[j]-=10;
					b[j-1]+=1;

				}
			}
			for(;j>=0;j--)
			{
				if(j==0&&b[0]>'9')
				{
					b[0]=b[0]-10;
					for(int o=_b;o>=0;o--)
					{
						b[o]=b[o-1];
					}
					b[0]='1';
				}
				if(b[j]>'9')
				{
					b[j]=b[j]-10;
					b[j-1]+=1;

				}
			}

			strcpy(a,b);
		}

		printf("Case %d:\n",n);
		printf("%s + %s = %s\n",a1,b1,a);
		if(t)printf("\n");

	}
	return 0;
}

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
geraldjason + 1 + 1 楼上的,是杭电ACM
砼小砼 + 1 + 1 杭电?

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

zzzain46 发表于 2018-2-16 22:24
为什么运行了它报错?
 楼主| 混血王子 发表于 2018-2-17 09:34
前面发的代码实际错误,但平台AC,我已经反馈
错误在于同位进位问题检测不错来 例如 9 +9  99+99
正确代码在下面
[C] 纯文本查看 复制代码
#include<stdio.h>
#include<string.h>
char a[1005], a1[1005];
char b[1005], b1[1005];
int main()
{
	int t;
	int n = 0;
	int i, j;
	int _a,_b;
	scanf("%d",&t);
	while (t--)
	{
		n++;
		scanf("%s",a);
		scanf("%s",b);
		strcpy(a1,a);
		strcpy(b1,b);
		_a = strlen(a);
		_b = strlen(b);

		if (_a > _b)
		{
			for (i = _a - 1, j = _b - 1; j >= 0; i--, j--)
			{
				a[i] = a[i] + b[j] - '0';
				if (a[i] > '9')
				{
					a[i] -= 10;
					a[i - 1] += 1;
				}
			}
			for (; i >= 0; i--)
			{
				if (i == 0 && a[0] > '9')
				{
					a[0] -= 10;
					for (int o = _a; o > 0; o--)
					{
						a[o] = a[o - 1];
					}
					a[0] = '1';
				}
				if (a[i] > '9')
				{
					a[i] -= 10;
					a[i - 1] += 1;
				}
			}
		}


		else
		{
			for (i = _a - 1, j = _b - 1; i >= 0; i--, j--)
			{
				
				b[j] = b[j] + a[i] - '0';
				if (j == 0 && b[0]>'9')
				{
					b[0] -= 10;
					for (int o = _b; o > 0; o--)
					{
						b[o] = b[o - 1];
					}
					b[0] = '1';
					goto  my;
				}
				if (b[j] > '9')
				{
					b[j] -= 10;
					b[j - 1] += 1;
				}

			}
			for (; j >= 0; j--)
			{
				if (j == 0 && b[j] > '9')
				{
					b[0] -= 10;
					for (int o = _b; o > 0; o--)
					{
						b[o] = b[o - 1];
					}
					b[0] = '1';
				}
				if (b[j] > '9')
				{
					b[j] -= 10;
					b[j - 1] += 1;
				}
			}

			my:
			strcpy(a,b);
		
		
				
		}
		printf("Case %d:\n",n);
		printf("%s + %s = %s\n",a1,b1,a);
		if (t)printf("\n");
	}
	return 0;
}
yoin 发表于 2018-2-17 21:53
Yunen 发表于 2018-2-18 03:50
杭州电子科技大学么?今年高三,想去读那的信安专业怎么样?
ahlaman 发表于 2018-4-5 21:15
Yunen 发表于 2018-2-18 03:50
杭州电子科技大学么?今年高三,想去读那的信安专业怎么样?

欢迎啊,三位一体报了吗
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 13:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表