加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

大数的加法

发布时间:2020-12-14 02:55:46 所属栏目:大数据 来源:网络整理
导读:#include stdio.h#include string.hint main(){int a[100],b[100],c[100];char ch1[100],ch2[100];int i,peace=0;int index=0;int k,j;printf("请输入第一个数字:n");scanf("%s",ch1);for(i=0;istrlen(ch1);i++)//把字符数字转换成整数数字,进行数字相加。
#include <stdio.h>
#include <string.h>
int main()
{
	int a[100],b[100],c[100];
	char ch1[100],ch2[100];
	int i,peace=0;
	int index=0;
	int k,j;
	printf("请输入第一个数字:n");
	scanf("%s",ch1);
	for(i=0;i<strlen(ch1);i++)				//把字符数字转换成整数数字,进行数字相加。
		a[strlen(ch1)-i-1]=ch1[i]-'0';
	printf("请输入第二个数字:n");
	scanf("%s",ch2);						//同上
	for(i=0;i<strlen(ch2);i++)
		b[strlen(ch2)-i-1]=ch2[i]-'0';
	for(i=0;i<strlen(ch1) && i<strlen(ch2);i++)//相同位数的相加
	{
		c[i]=(a[i]+b[i]+peace)%10;
		peace=(a[i]+b[i])/10;
		index++;
	}
	if(strlen(ch1)>strlen(ch2))				//位数多的数字进行进位运算
	{
		k=strlen(ch2);
		j=strlen(ch1);
		for(i=k;i<j;i++)
		{
			c[i]=(a[i]+peace)%10;
			peace=(a[i]+peace)/10;
			index++;
		}
	}
	else
	{
		k=strlen(ch1);
		j=strlen(ch2);
		for(i=k;i<j;i++)
		{
			c[i]=(b[i]+peace)%10;
			peace=(b[i]+peace)/10;
			index++;
		}
	}

	if(peace)							//最高位进1
	{
		c[i]=peace;
		index++;
	}

	for(i=index-1;i>=0;i--)				//输出
		printf("%d",c[i]);
	putchar('n');

	return 0;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读