Оказывается, мне нужно разработать программу, в которой пользователь вводит два целочисленных значения и через функцию строкового типа возвращает сумму каждой цифры целочисленного умножения, представленной в виде строки. Однако, это дает мне несколько ошибок, таких как: Упрощение умножения между 391 и 1 равно 0 -----> Я должен был бы дать «13», так как 391 * 1 = 391 ---> 3 + 9 + 1 = 13. Я прилагаю код:
#include <iostream>
#include <string>
using namespace std;
string simplifyNumber(int a, int b);
string simplifyNumber(int a, int b){
int multiplication = 0;
int total = 0;
multiplication = a * b;
string string_total = to_string(multiplication);
if (string_total.length() > 1){
for(int i; i < string_total.length(); i++){
total += (string_total[i] - '0');
}
}
return to_string(total);
}
int main(){
int a, b;
cin >> a >> b;
string total = simplifyNumber(a, b);
cout << "The simplification of the multiplication between " << a << " and " << b << " is " << total;
return 0;
}
Проблема escuentra в for
, когда ты делаешь total += (string_total[i] - '0');
это, ты можешь решать это объявляя временную переменную типа int
, в которую ты будешь обращать каждый из них carГЎcteres в целое число и позже складывать total
if (string_total.length() > 1)
{
int temp = 0;
for (int i; i < string_total.length(); i++)
{
temp = string_total[i]-'0';
total += temp;
}
}