我一直在尝试用 C++ 创建一个程序来尝试完成这个伪代码:
get argv[1] into int
get int’s digits into array[int length]
for int i = array length; i >= 0;
gen random number into check
if check == array[i]
i
say Number i was check
end if
我认为我真正挣扎的部分是
get argv[1] into int
get int’s digits into array[int length]
部分。在我的完整代码中甚至没有尝试,因为我尝试过的任何东西都不起作用。我得到的最多的错误是代码可以编译,但每次它尝试时cout << "Number 1:" << number
我都会得到Number 1: 0
无论我输入的实际数字。当0 == 0
代码甚至没有注意到时。
我破坏的可能违反约定的代码如下:
#include <iostream>
#include <string>
int main (int argc, char **argv) {
if (argc == 1 || argc == 3) {
std::cout << "Argument count does not match (one argument expected)\n";
return(-1);
}
std::cout << "Input: " << argv[1] << "\n";
const char* text = argv[1];
int number = atoi(text);
int check = rand() % 10;
std::cout << "Check 1: " << check << "\nNumber 1: " << number << "\n";
if (check == array[i]) {
i++;
std::cout << "Success! Number " << i << " was " << check << ".\n";
}
}
}
TL; DR:我的“某种”数字破解者不想将 argv 1放入一个 int 中,而该 int 的数字稍后会放入一个数组中。
随意让我感到愚蠢。希望问题不要太具体。我将按要求详细说明。
编辑:这是转换的早期尝试:
int array[];
for (int i = strlen(text); i >= 0; i--) {
array[i] = number % 10;
number /= 10;
}
EDIT2:这么多的回应,没有解决方案。谢谢你试图一次解释这个新手这么多事情。顺便说一句:Git