用用户输入搜索数组

时间:2019-02-24 01:33:57

标签: c++ arrays for-loop user-input

我有一个问题无法解决。 简短地写,这是怎么回事:

在学校中,有N位教授,出生于某一年,您需要找出这些教授共享的年数(如果两位教授共享一年,则重复一年)。

示例:输入:(第一行)3(第二行)1975 1960 1975输出:(第三行)1

我已经以某种方式开始了,但是我只能设法创建输入:

int N;
cin >> N;
int array[N];

for (int i = 0; i < N; i++) {
     cin >> array[i];
}

现在,我不知道如何继续操作或使用用户输入的信息(年)。

编辑:虽然可能有更好的解决方案,但我只是在寻找一个简单解决方案,或者是一段代码,解释了如何继续执行此程序。

编辑:应显示重复的年数。

1 个答案:

答案 0 :(得分:0)

在上面的程序中,您可以让用户输入他们输入的年数以及要比较的年数。现在要获取输出,应该使用for循环遍历数组并比较年份。

例如: 用户输入:1975 1960 1975 在您的代码中,它将存储为:array [0] = 1975,array [1] = 1960,array [2] =1975。

我建议的一个选择是: 遍历数组并计算重复项的数量。如果我们发现更高的数量,则将其设置为最高重复数量。 示例:请于1975年阅读,如果有重复,请与每个元素进行比较。如果发现重复,则增加计数器。如果计数器大于最高计数,则该计数变为最高计数。对整个阵列重复此过程。

程序:

int N;
cin >> N;
int A[N];
int highest_count = 0;
for (int i = 0; i < N; i++) {
    cin >> A[i];
}
for (int i = 0; i < N; i++) {
    int counter = 0;
    for (int j = i; j < N; j++) {
        if (A[i] == A[j] {
            counter++;
        }
        if (counter > highest_count) {
            highest_count = counter;
        }
    }
}
cout << highest_count;