これは本当にシンプルなはずですが、私はより高水準の言語に慣れていて何かを見逃しています。私は入力が5つの数字であることを確かめようとしているだけで、最も高い数字を見つけようとしています。残念ながら、その2番目の部分で何かが間違っています。長さの配列の中で最高の数字を見つける5
#include <iostream>
#include <string>
bool isFiveDigits(int num) {
if (std::to_string(num).length() == 5) {
return true;
} else {
return false;
}
}
int highestInArr(int *nums) {
int highest = nums[0];
for (int i = 1; i < sizeof(nums); i++) {
int temp = nums[i];
if (temp > highest) {
highest = temp;
}
}
return highest;
}
int main() {
using namespace std;
int num;
int nums [5];
cout << "Enter a five digit number!\n";
cin >> num;
if (!isFiveDigits(num)) {
cout << "Not five digits, can you even count?";
return 1;
}
string numstr = to_string(num);
for (int i = 0; i < numstr.length(); i++) {
cout << numstr[i] << " ";
nums[i] = (int)numstr[i];
}
cout << "\n" << highestInArr(nums);
}
これを実行すると、私が手:もちろん
Enter a five digit number!
12345
1 2 3 4 5
1424080487
を、1,424,080,487
が[1, 2, 3, 4, 5]
ではありません。
'for(int i = 1; i
arrayの代わりに 'std :: vector'を使わないのはなぜですか? – Shravan40
参照:http://stackoverflow.com/questions/18286384/program-to-find-largest-and-smallest-among-5-numbers-without-using-array/18286453#18286453 –