自己输入算的都对,一提交都错,求助
查看原帖
自己输入算的都对,一提交都错,求助
1283833
_Persever_ance楼主2024/2/25 19:36
#include<stdio.h>
int main()
{
	int a[2100] = { 0 }, b[2100] = { 0 }, c[4200] = { 0 };
	int c1 = 0, c2 = 0, c3 = 0, i = 0, j = 0, k = 0, max = 0;
	char get;
	while (1)//顺序输入数据
	{
		get = getchar();
		if (get == '\n')
		{
			break;
		}
		a[c1++] = get - '0';//c1为位数
	}
	while (1)
	{
		get = getchar();
		if (get == '\n')
		{
			break;
		}
		b[c2++] = get - '0';
	}
	for (i = c1-1; i >= 0; i--)//竖式乘法实现,结果逆序输入
	{
		if (a[i] == 0)
			continue;
		for (j = c2-1; j >= 0; j--)
		{
			if (b[j] == 0)
				continue;
			c3 = c2 - j - 1 + c1 - i - 1;//数字填充的位数
			k = a[i] * b[j];
			while (k != 0)//进位
			{
				c[c3] += k % 10;
				k /= 10;
				max = c3 > max ? c3 : max;
				c3++;
			}
		}
	}
	for (i = 0; i <= max; i++)//进位
	{
		if (c[i] >= 10)
		{
			c3 = i + 1;
			k = c[i];
			c[i] %= 10;
			k /= 10;
			while (k != 0)
			{
				c[c3] += k % 10;
				k = k / 10;
				max = c3 > max ? c3 : max;
				c3++;
			}
		}
	}
	for (i = max; i >= 0; i--)//逆序输出
	{
		printf("%d", c[i]);
	}
	return 0;
}
2024/2/25 19:36
加载中...