蓝桥杯基础练习超全习题题解VIP版——BASIC-29.高精度加法(数组法)

每日刷题(四十八)

BASIC-29、高精度加法

在这里插入图片描述
在这里插入图片描述
这个题唯一的难点在于字符的计算,如果要把字符转化成int型,直接减’0’就行
这里我设三个数组,两个字符数组用来分别记录第一二行输入数据,设一个int型数组来计算并存放数字

#include<stdio.h>

int main()
{
	char a[101], b[101];
	int ans[101] = {0};
	gets(a);
	gets(b);
	int lena = 0;
	while(a[lena] != '\0')
		lena++;
	a[lena] = '\0';		//得到a数组长度 
	int lenb = 0;
	while(b[lenb] != '\0')
		lenb++;
	b[lenb] = '\0';		//得到a数组长度 
	int i = 0;
	for(; i < lena || i < lenb; i++)
	{
		if(i < lena)
			ans[i] += a[lena - i - 1] - '0';
		if(i < lenb)
			ans[i] += b[lenb - i - 1] - '0';
		if(ans[i] >= 10)
		{
			int t = 0; 
			t = ans[i];
			ans[i] %= 10;
			ans[i + 1] += t / 10; 
		}
	}
	int k = 0;
	while(i > -1)
	{
		if(ans[i] != 0)
			k = 1;
		if(k)
			printf("%d", ans[i]);
		i--;
	}
	return 0;
}

样例运行结果如下:
在这里插入图片描述

如果喜欢我的文章,请记得三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持,下期更精彩!!!

发布了99 篇原创文章 · 获赞 16 · 访问量 5905

猜你喜欢

转载自blog.csdn.net/qq_44631615/article/details/105177634