我有一个问题无法解决。 简短地写,这是怎么回事:
在学校中,有N位教授,出生于某一年,您需要找出这些教授共享的年数(如果两位教授共享一年,则重复一年)。
示例:输入:(第一行)3(第二行)1975 1960 1975输出:(第三行)1
我已经以某种方式开始了,但是我只能设法创建输入:
int N;
cin >> N;
int array[N];
for (int i = 0; i < N; i++) {
cin >> array[i];
}
现在,我不知道如何继续操作或使用用户输入的信息(年)。
编辑:虽然可能有更好的解决方案,但我只是在寻找一个简单解决方案,或者是一段代码,解释了如何继续执行此程序。
编辑:应显示重复的年数。
答案 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;