C++ 计数变量为';在用重复的数字计算数字的程序中,t随着程序的迭代而增加
我正在做一个程序,它通过一个连续数字向量来识别有重复数字的数字。输出应删除这些带有重复数字的“无效”数字,并输出定义向量的范围a和范围b内没有重复数字的剩余“有效”数字的数量 我的变量计数跟踪向量中有多少个数字有重复的数字。例如,在数字8和12之间,应该有1个无效数字(即11)。我的计数变量输出几乎为0。(我使用的函数在单独的文件中)C++ 计数变量为';在用重复的数字计算数字的程序中,t随着程序的迭代而增加,c++,loops,boolean,C++,Loops,Boolean,我正在做一个程序,它通过一个连续数字向量来识别有重复数字的数字。输出应删除这些带有重复数字的“无效”数字,并输出定义向量的范围a和范围b内没有重复数字的剩余“有效”数字的数量 我的变量计数跟踪向量中有多少个数字有重复的数字。例如,在数字8和12之间,应该有1个无效数字(即11)。我的计数变量输出几乎为0。(我使用的函数在单独的文件中) #包括 #包括 #包括“functions.h” int main(){ //变数 int a,b,i,count=0;//a&b输入,i用于迭代 int x=0
#包括
#包括
#包括“functions.h”
int main(){
//变数
int a,b,i,count=0;//a&b输入,i用于迭代
int x=0;//数字出现计数的变量
//输入数字范围
std::cout a;
标准:cin>>b;
//使向量包含a和b之间的数字
std::南部的向量列表((b-a)+1);
int initialvalue=a;
虽然(i)您从不初始化i
。它在顶部设置为等于0,然后在循环中有一个i++-我很困惑@johnymoponlycount
和x
被分配到0
。将代码更改为inta=0,b=0,i=0,count=0;
。您还应该检查0i
从0开始。显式地将其初始化为0。另外,为什么每次循环迭代调用has_repeating_digits()
两次,并且调用range_是有效的()
循环完成后两次?为什么在进入循环之前不调用范围\u有效()
?还有,计数\u数字\u出现次数()
是如何声明的,以及在哪里使用x
?
#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;
}