Ошибка программы для умножения двух значений, введенных пользователем, и добавления каждого символа

Оказывается, мне нужно разработать программу, в которой пользователь вводит два целочисленных значения и через функцию строкового типа возвращает сумму каждой цифры целочисленного умножения, представленной в виде строки. Однако, это дает мне несколько ошибок, таких как: Упрощение умножения между 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;
          } 
0
задан 01.12.2019, 18:34
1 ответ

Проблема 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;
    }
}
0
ответ дан 01.12.2019, 22:14