Witam, mam takie oto zadanie i wydawałoby się, że wszystko powinno działac jednak jak liczba "2" występuje wiecej niz raz to program dalej liczy ze wystąpiła tylko jeden raz. Gdzie jest błąd?
Napisz uniwersalną funkcję działającą dla wektora w argumencie. Przekaż dodatkową liczbę
w argumencie. Funkcja ma za zadania zwrócić liczbę wystąpień zadanej liczby znalezionych w
wektorze. Analogicznie, jeśli liczba nie wystąpi w wektorze funkcja ma zwrócić zero.
#include <iostream>
#include<vector>
#include<cstdio>
#include<conio.h>
using namespace std;
int find (vector <int> Vec, int r, int a=2) {
int times=0;
for (size_t i = 0; i<r;i++) {
if (Vec[i]=a) {
times ++;
return times;
} else {
return 0;
}
}
}
int main()
{
int funkcja;
vector <int> mainVec;
size_t liczba;
for (size_t i = 0; i<mainVec.max_size(); i++) {
cout << "Podaj liczbe. Kliknij 0 aby zakonczyc.";
cin >> liczba;
if (liczba==0) {
cout<< "Koniec numerowania!";
break;
}else {
mainVec.push_back(liczba);
}
}
funkcja = find (mainVec, mainVec.size());
cout << "Ilosc dwojek: " << funkcja;
return 0;
}