如何在数组中搜索之前已输入的 int 值
How to search an array for an int value that has already been entered previously
我正在制作一个简单的猜谜游戏程序。用户输入一个满分 100 的值,程序会告诉用户他们的猜测是太高还是太低。我想这样做,以便程序让用户知道他们之前已经输入了当前号码。我将如何在我的程序中实现一个循环,该循环将用户猜测并将其与数组列表进行比较以查找重复值?
#include <ctime>
#include <iostream>
#include <iomanip>
using namespace std;
#include <cstdlib>
int main()
{
srand(time(0));
const int SIZE = 100; //array
int number[SIZE];
int i;
int numb = rand() % 100; //rng
cout <<"Hint: "<< numb << endl;
cout << " " << endl;
cout << "I'm thinking of a number between 1 and 100. Guess what it is: ";
for (i = 0; i < SIZE; i++)
{
cin >> number[i];
if (number[i] == numb)
{
cout << "Correct! It's " << numb << endl; //if user guesses correct
break;
}
else if (number[i] < numb) //if user guesses too low
{
cout << "That's too low! guess again: " ;
}
else if (number[i] > numb) //if user guesses too high
{
cout << "That's too high! guess again: " ;
}
}
}
为已键入的值创建一个向量:
vector <int> atyped;
创建一个函数来检查并返回 true 或 false:
int check(int entered_value, vector <int> atyped) {
ret=0;
for (int i=0;i<atyped.size();i++){
if (enterd_value==atyped[i])
ret=1;
}
return ret;
}
然后你所要做的就是:
if (check(number[i])!=0)
cout << "Sorry, you already tried that one!" <<endl;
希望这至少可以让你知道如何解决你的问题;)
使用std::find
for (i = 0; i < SIZE; i++)
{
cin >> number[i];
if (number[i] == numb)
{
cout << "Correct! It's " << numb << endl; //if user guesses correct
break;
}
else if (std::find(number, number + i, number[i]) != number + i)
{
cout << "You already guessed that! guess again: " ;
}
else if ... // existing higher or lower
}
指针的范围[number, number + i)
是之前的所有猜测。find
返回第一个匹配指针,如果没有匹配项,则返回结束 (number + i
(。
相关文章:
- C++,在int数组中输入字符串或字符会输出0,而不是ascii或error
- C++ 中文件输入输出中的长长 v/s int
- 在这个无限循环中,当输入 0 时终止,当输入 int 范围之外的任何内容时,程序行为不正常
- 我想知道为什么"std::unique_ptr<int> foo(新 int)"是合法的,因为"std::<int>unique_ptr"要求输入参数类型应该是"int"?
- 如何在使用 cin 请求 int 时有效地使用户输入万无一失?
- 为什么当我尝试将char输入到int时,文件指针会卡住
- 当我们声明 cin 为 int 并从 cin 中获取输入并在 cout 中打印 cin 时会发生什么?
- 如果我在 C++ 中为 int 提供双精度,输入缓冲区中存储了什么?
- 利用输入文件中的数据(字符串和int)并在循环中利用
- 如何在数组中搜索之前已输入的 int 值
- 当我输入一个字母时,cin 输入(输入是一个 int),而不是打印错误一次,它打印正确一次,然后在循环的其余部分打印 i
- 将输入到向量的<int>优雅解决方案
- 将int输入函数,将int输入开关,然后更改int的值
- 如果用户在 int 中输入字符,如何使用输入
- 如何从输入中定义的"external" int 定义结构中的数组大小
- 当用户输入int变量的字符串时,输出
- 输入int之后的字符的c++输入数组
- C 从文本文件中将数据输入INT矢量
- 福尔。while 循环:我应该怎么做,使输入 (int) 不包含数字 '1' 或"0"?
- 如何在等待用户输入int, float或其他类型时拒绝输入char/string