数组卡在某种循环中

时间:2015-06-21 21:43:49

标签: c++ arrays

我正在制作一个程序,要求用户输入一个4位数字,然后将该数字存储到数组中。没有重复的数字,所以我创建了一个功能,用于检查用户是否输入了重复数据。如果他们这样做,该函数应该返回false,如果没有,则函数返回true。我的问题是,当我去运行程序时,它会提示用户输入一个4位数字,但是一旦他们这样做,程序就会说它已经在系统中了。 这是功能:

bool isExist(int ssn, int record[], int number_of_records)
{
    if (record[ssn] < max_ssn && record[ssn] > min_ssn)
    {
    for (int i = 0; i < number_of_records; i++)
    {
        for (int j = i; j < number_of_records; j++)
            {
            if (record[i] == record[j])
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }
    }
}

以下是我在main中的称呼方式:

while (isExist)
    {
        cout << "Already in the system. Please enter a different social security number:\t";
        cin >> record[ssn];
        if (isExist == false)
        {   
            cout << "Enter another four digit social security number:\t";
            cin >> record[ssn];
        }
    }

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

在你的while循环中你看起来是指一个永远不会被设置为isExist的变量true,你似乎没有调用你的方法{{1}并设置您的本地变量

答案 1 :(得分:0)

您的代码从不调用isExist函数。尝试使用它:

while (isExist(record[ssn], records, num_records))
    {
        cout << "Already in the system. Please enter a different social security number:\t";
        cin >> record[ssn];
        if (isExist == false)
        {   
            cout << "Enter another four digit social security number:\t";
            cin >> record[ssn];
        }
    }