Не работает printf для длинной арифметики
Пишу код для длинной арифметики. Пока реализована только функция суммы. Почему-то не выводится результат, хотя в консоли ошибок нет.
#include <stdio.h>
#include <math.h>
#include <String.h>
void Sum(char* s1, char* s2, char* result)
{
int i = 0, transfer = 0;
int digit1, digit2;
while (i < strlen(s1) || i < strlen(s2))
{
if (i < strlen(s1)) digit1 = s1[i] - '0';
else digit1 = 0;
if (i < strlen(s2)) digit2 = s2[i] - '0';
else digit2 = 0;
int sum = digit1 + digit2 + transfer;
result[i] = (sum % 10) + '0';
transfer = sum / 10;
i++;
}
if (transfer > 0) result[i++] = transfer + '0';
result[i] = '\0';
}
void Reverse(char* s) {
int l = strlen(s);
for (int i = 0; i < l / 2; i++) {
char temp = s[i];
s[i] = s[l - i - 1];
s[l - i - 1] = s[i];
}
}
int Compare(char* s1, char* s2)
{
if (strlen(s1) == strlen(s2));
{
for (int i = 0; i < strlen(s1); i++)
{
if (s1[i] > s2[i])
{
return 1;
break;
}
if (s1[i] < s2[i])
{
return 2;
break;
}
if (s1[i] == s2[i])
{
continue;
}
}
}
if (strlen(s1) > strlen(s2))
{
return 1;
}
if (strlen(s1) < strlen(s2))
{
return 2;
}
return 0;
}
int main() {
char s1[1001], s2[1001];
char* result = (char*)malloc(100000 * sizeof(short));
printf("Enter the first number: ");
fgets(s1, 1001, stdin);
printf("Enter the second number: ");
fgets(s2, 1001, stdin);
int sign1, sign2;
printf("Enter 1 - 2 to choose '+' or '-' for the first number: ");
scanf_s("%d", &sign1);
printf("Enter 1 - 2 to choose '+' or '-' for the second number: ");
scanf_s("%d", &sign2);
int cmp = Compare(s1, s2);
Reverse(s1); Reverse(s2);
printf("Enter 1 - 6 to select operation: ");
int selection;
scanf_s("%d", &selection);
if (selection == 1)
{
if (sign1 == 1 && sign2 == 1)
{
Sum(s1, s2, result);
Reverse(result);
printf("Sum is: %s\n", result);
}
}
}