用户输入时检查数组元素值是否已存在

时间:2013-11-14 07:21:16

标签: c++

如何检查数组是否已包含值?

例如,

输入: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; 
            }
        } 

}

1 个答案:

答案 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...");
}