如何检查数组是否已包含值?
例如,输入:1 输出:1
输入:1 错误!:存在数字
输入:2 输出:2
当用户输入已经存在于数组中时,它将显示错误并要求他们再次输入,直到他们输入不同的值。输入不同的值时,该值将添加到数组中。如果输入的值与任何元素值相同,则不会将其添加到数组中。
int num[5], temp;
bool val = true, existed = false;
for(int i = 0; i < 5; i++){
val = true;
while(val){
cout << "\nPlease enter a number:";
cin >> temp;
for(int x = 0; x < 5; x++){
if(temp == num[x]){
existed = true;
}
}
if(existed){
cout << "Number existed";
} else {
num[i] = temp;
cout << "Your number" << num[i];
val = false;
}
}
}
答案 0 :(得分:1)
您可以编写一个简短的函数来进行检查:
bool alreadyExists(int *array, int array_size, int value)
{
for (int i = 0; i < array_size; i++)
if (array[i] == value)
return true; // we found the same value, return true
return false; // if we get here we have not found it
}
用
调用它int input = 1;
if alreadyExists(num, 5, input)
{
printf("already exists\n");
}
else
{
printf("Ok to add...");
}