我的代码自己调试没有问题啊就是不给过,求助大佬,必回关注
查看原帖
我的代码自己调试没有问题啊就是不给过,求助大佬,必回关注
1474975
Dankingzzz楼主2024/11/1 22:54
#include<stdio.h>
#include<string.h>
void removef(char ch[])
{
	int len = strlen(ch);
	if (ch[len - 1] == '\n')
	{
		ch[len - 1] = '\0';
	}
}
void swapp(char ch1[], char ch2[])
{
	char ch3[20000];
	strcpy(ch3, ch1);
	strcpy(ch1, ch2);
	strcpy(ch2, ch3);
}
int main()
{
	char a[20000];
	char b[20000];
	int num1[20000] = {0};
	int num2[20000] =  {0};
	int num3[20000] = {0};
	fgets(a, 20000, stdin);
	fgets(b, 20000, stdin);
	removef(a);
	removef(b);
	int lena = strlen(a);
	int lenb = strlen(b);
	int d = 0;
	if (lena < lenb)
	{
		swapp(a, b);
		int temp = lenb;
		lenb = lena;
		lena = temp;
		d = 1;
	}
	else if (lena == lenb)
	{
		if (strcmp(a, b) < 0)
		{
			swapp(a, b);
			int temp = lenb;
			lenb = lena;
			lena = temp;
			d = 1;
		}
	}
	for (int i = 0; i < lena; i++)
	{
		num1[lena - i] = a[i]- '0';
	}
	for (int i = 0; i < lenb; i++)
	{
		num2[lenb - i] = b[i] - '0';
	}
	int lenc = lena > lenb ? lena : lenb;
	for (int i = 1; i <= lenc; i++)
	{
		if (num1[i] < num2[i])
		{
			num1[i + 1]--;
			num1[i] += 10;
		}
		num3[i] = num1[i] - num2[i];
	}
	while (num3[lenc] == 0 && lenc > 1)lenc--;
	if (d == 1)printf("-");
	for (int i = lenc; i >= 1; i--)
	{
		printf("%d", num3[i]);
	}
	return 0;
}
2024/11/1 22:54
加载中...