这是我的代码,我想在用户尝试输入相同的值时限制重复出现的值。最好只在main函数中进行所有操作,因为我还在学习如何声明更多的函数。
'
#include <iostream>
using namespace std;
int main() {
int num[10][10];
int times;
cout << "Please input the number of times you wish to enter a value but does not exceed to 100: ";
cin >> times;
cout << "Enter a value " << times * times << " times." << endl;
for(int i = 0; i < times; i++) {
for(int k = 0; k < times; k++) {
cout << "Please input a number on index [" << i << "][" << k << "]: ";
cin >> num[i][k];
}
}
//Displaying the inputs
cout << "Printing all values inside the array: " << endl;
for(int i = 0; i < times; i++) {
cout << endl;
for(int k = 0; k < times; k++) {
cout << "\t" << num[i][k] << " ";
}
}
return 0;
}
'
当用户尝试输入一个重复值时,我期望的输出如下:
请在索引[0][0]上输入一个数字:7请在索引[0][1]上输入一个数字:7已输入值。请重试。请在索引[0][1]上输入数字:
2条答案
按热度按时间xtupzzrd1#
在这种情况下,您可以使用如下函数:
它将数组、数组大小、要比较的值以及第一次插入的唯一元素的位置作为参数。
您可以这样实现它:
这不是解决这个问题的最佳方法。在C++中,推荐使用STL容器,因为它们提供了更多的安全性和迭代器。
q43xntqr2#
您只希望用户不要输入重复的值:-
1.首先,非常基本的,你可以检查所有以前的值,如果它与当前值匹配,那么你可以告诉用户更改值。
1.你可以使用unordered_map,as map is(key,value)pair每当你在map中插入任何值时,只需将其对应的值设置为1,然后你可以检查你的map,如果该值已经存在于map中,或者如果它存在,那么你可以告诉用户改变,在map中它将很容易搜索。(代码很简单)