微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

大数相加

#include<stdio.h>
#include<string.h>
int main()
{
	char a[100],b[100];
	int c[101];
	int stra,strb;
	gets(a);
	gets(b);
	stra=strlen(a);//得到a的长度
	strb=strlen(b);//得到b的长度
	int m=stra-1;//得到a的最后一个元素的序号
     int n=strb-1;//得到b的最后一个元素的序号
	 int p=0;//最大数相加要么是10-20要么0-10,所以p具有标记作用!
    for(int i=0;m>=0||n>=0;i++,m--,n--)
	{
		if(m>=0&&n>=0)
		{
            c[i]=a[m]+b[n]-2*'0'+p;//得到a[m],b[n]的实际数字,相加再存入整型数组c[i]中
		}
		else if(m>=0&&n<0)
		{
            c[i]=a[m]-'0'+p;
		}
		else if(n>=0&&m<0)
		{
           c[i]=b[n]-'0'+p;
		}
		p=0;
		if(c[i]>9)
		{
			c[i]=c[i]-10;p=1;
		}
	}
	if(p==1)
	{
		printf("%d",1);//这是当左后一次相加大于10的情况下进一位!
	}
	while(i--)
	{
		printf("%d",c[i]);
	}
	return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐