Переменная Count не увеличивается, так как программа выполняет итерацию, как и должна - в программе, которая считает числа с повторяющимися цифрами - PullRequest
0 голосов
/ 04 февраля 2020

Я работаю над программой, которая проходит через вектор последовательных чисел и идентифицирует числа, которые имеют повторяющиеся цифры. Вывод должен удалить эти «недопустимые» числа с повторяющимися цифрами и вывести количество оставшихся «действительных» чисел без повторяющихся цифр в пределах диапазона a и b, который определяет вектор.

Моя переменная count отслеживает, как многие числа в векторе имеют повторяющиеся цифры. например, между числами 8 и 12 должен быть 1 недопустимый номер (равный 11). моя переменная count выводит 0 почти для всего. (мои используемые функции находятся в отдельном файле).

#include <iostream>
#include <vector>
#include "functions.h"


int main() {
    //variables
    int a, b, i, count = 0; // a & b inputs, i for iterating
    int x = 0;  //variable for digit occurrence count

    //entering number range
    std::cout << "Enter numbers 0 < a <= b <= 10000: " << std::endl;
    std::cin >> a;
    std::cin >> b;

    //making a vector to contain numbers between a and b
    std::vector<int> listofnums((b-a)+1); 
    int initialvalue = a;
    while (i <= (b-a)) {  
        listofnums[i] = initialvalue;                                 


        //call the has repeating digits function
        has_repeating_digits(listofnums[i]);
        if (has_repeating_digits(listofnums[i]) == true) {  //counting nums w repeat digits
            count++;
        }

        //call the count digit occurrences function
        count_digit_occurrences(listofnums[i], x);

        initialvalue++; 
        i++; 
    }

    //Call the valid range function
    range_is_valid(a, b);
    if (range_is_valid(a, b)) {
        std::cout << "The range is invalid" << std::endl;
    }

    //call the count valid numbers function
    std::cout << count ;
    std::cout << "There are " << count_valid_numbers(a, b, count);
    std::cout << " valid numbers between " << a << " and " << b << std::endl;

    return 0;
}

...