Почему-то работает не так как должно

95
24 декабря 2021, 06:40

Есть у меня код:

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    setlocale(0, " ");
    int x,y,sum1,sum2;
    sum1 = sum2 = 0;
    for (; ; ) {
        cout << "Введите номер своего билета" << endl;
        cin >> x;
        y = (x == 0 ? 1 : int(log10(x) + 1));
        if (y != 6) cout << "Номер билета имеет 6 цифер, и не начинається числом '0'. Повторите попитку." << endl;
        if ((y == 6) and (y % 100000 != 0)) break;
    }
    cout << "Всё введено верно." << endl;
    sum1 += (x % 10) + (x % 1000) + (x % 100000);
    sum2 += (x % 100) + (x % 10000) + (x % 1000000);
    if (sum1 == sum2)cout << "Удачний билет." << endl;
    else cout << "Ваш удачний билет в наступном тролейбусе" << endl;
    cout << sum1 << "_" << sum2 << endl;
    system("pause");
    return 0;
}

Должно выводить "Удачный билет." когда сумма цифр которые стоят на непарных местах равна суме цифр стоящих на парных местах (по типу 3+6+5 = 7+4+3). Ввел 295163, и мне вывело:

Все введено верно
Ваш удачный билет в следующем троллейбусе.
95329_300389

Я ожидал на:

Все введено верно  
Удачний билет. ‭ 
13‬_‭13‬

Почему оно додаётся как текст, а не как числа? И как это исправить?

Answer 1

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

Вот это

(x % 1000)

не третья цифра справа. А вот это

(х / 100) % 10

или вот это

(x % 1000 - x % 100) / 100

третья цифра справа.

sum1 = (x % 10) + ((х / 100) % 10) + ...
READ ALSO
Вывод матрицы спиралью [закрыт]

Вывод матрицы спиралью [закрыт]

Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение

90
C++, использование char для доступа к элементам массива

C++, использование char для доступа к элементам массива

Я хочу уточнить один момент, касающийся использования char для доступа к элементам массива

253
Работа со строками (string) в С++

Работа со строками (string) в С++

Подскажите как можно сделать сие действие:

188
Работа с valarray и струкутрами

Работа с valarray и струкутрами

Есть некоторая структура

176