#include
') {
i = i + 1;
printf("%5d", B[i]);
}
#include
while ((A[i] = getchar()) != '
') {
i = i + 1;
}
i = 0;
while ((B[i] = getchar()) != '
') {
printf("%5c", B[i++]);
}
for (i = 5; i > 0; i--) {
C[c] = (A[i] + B[i]);
c++;
}
printf("
");
for (i = 0; i < c; i++) {
printf("%5c", C[i]);
}
_getch();
}
Ответ
Вам нужно что-то вроде
#include
int add(char * dest, char * src1, char * src2, unsigned int n)
{
dest[n] = 0;
int carry = 0;
for(int i = n-1; i >= 0; --i)
{
int op1 = (src1[i] == ' ') ? 0 : src1[i]-'0';
int op2 = (src2[i] == ' ') ? 0 : src2[i]-'0';
int res = op1 + op2 + carry;
carry = 0;
if (res > 9) { res -= 10; carry = 1; }
dest[i] = res + '0';
}
for(char * c = dest; *c == '0'; ++c) *c = ' ';
return carry;
}
int main(int argc, const char * argv[])
{
char a[] = "12353163513251353123513451";
char b[] = "98650987847947749794597949";
char sum[sizeof(a)];
int res = add(sum,a,b,sizeof(a)-1);
printf("%s+
%s=
%s
Overflow: %d
",a,b,sum,res);
strcpy(a,"12346541247246");
strcpy(b," 6537652");
res = add(sum,a,b,strlen(a));
printf("%s+
%s=
%s
Overflow: %d
",a,b,sum,res);
}
Комментариев нет:
Отправить комментарий