この疑似コードを達成しようとするプログラムを 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