gpt4 book ai didi

C++ 如何使用 any_of 查找函数中的重复数字?

转载 作者:太空宇宙 更新时间:2023-11-03 10:40:56 25 4
gpt4 key购买 nike

这是我的代码:

#include <iostream>
#include <algorithm>
using namespace std;

void input_guess_number(int guess_number[]){

int num, check = 0;

for(int i = 0; i < 4; i++){

cout << "please enter no." << i+1 << " number (0-9) and press enter: ";
cin >> num;

if (any_of(begin(guess_number), end(guess_number), [=](int n){return n == num;})){
check = 1;
}
else{
check = 0;
}

if (check == 1){
cout << "\nyou cannot use this number. try another one!\n\n";
i--;
}
else if (num >=0 && num < 10){
guess_number[i] = num;
}
else{
cout << "\nwrong number! please choose a number from 0 to 9.\n\n";
i--;
}

}

cout << "\nYour number is: ";

for(int i = 0; i < 4; i++){
cout << guess_number[i];
}
}

int main()
{
int guess_number[4] = {100, 100, 100, 100};
input_guess_number(guess_number);
}

如果我将所有代码都放在 main() 中,它们会工作得很好。

现在我试图将它们放入函数 input_guess_number,这样 main() 会更小。但是发生了一些事情。他们无法工作。

有人知道如何改进吗?谢谢。

最佳答案

问题是,一旦您将数组传递给函数,它就会衰减为指向其第一个元素的指针。您不能真正使用指针的 beginend 。而是将数组的大小(元素数)作为额外参数传递给函数,并使用 guess_number 作为起始迭代器,使用 guess_number + size_of_array 作为结束迭代器。

或者开始使用std::array代替你的数组。

关于C++ 如何使用 any_of 查找函数中的重复数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38207682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com