//227. Вводятся два очень длинных целых числа.Найти их сумму.
#include"pch.h"
#include<iostream>
#include<string>
using namespace std;
int main() {
char one[] = "12456565650775";
char two[] = "2132434355322";
for(int i= strlen(one),j=strlen(two);(i=0)||(j=0);j--,i--){
if (one[i] + two[j] > 9) {
one[i - 1] = (one[i] + two[i]) / 10;
one[i] = (one[i] + two[i]) % 10;
}
else { one[i]+= two[j]; }
}
for (int i = 0; i < strlen(one); ++i) {
cout << one[i];
}
}
//выводится не измененное первое число
У вас one[i] это не число, а символ(например это не 5, а '5'). Если найти символ '5' с таблице ASCII, то его код равен какому-то двузначному числу. Поэтому при проверке one[i]+two[i] > 9. Суммируются не числа внутри кавычек, а коды этих символов, поэтому даже если исправить ошибку с == в заголовке цикла, то программа не будет работать. Проблема с кодами символов решается просто. Создаёте функции
int charToInt(char x){
return x - '0';
}
char intToChar(int x){
return x+'0';
}
Они работают с кодом нуля. Ну и вам следует попробовать написать програмки попроще, прежде чем переходить на суммы длинных чисел. Ещё будут баги, когда вы выберете другие числа. Например при суммировании "123" и "12345".
Продвижение своими сайтами как стратегия роста и независимости