我正在制作一个程序,要求用户输入一个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];
}
}
有人可以帮忙吗?
答案 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];
}
}