Prosila bym pisac prostymi algorytmami typu: if, while, for itp, bo jestem na poziomie liceum i nie ktorych mogla bym nie znac Zadanie w programie C++
Masz dany ciąg liczb całkowitych a1, a2, … an. Zadaniem Twojego programu jest obliczenie ile różnych liczb występuje w tym ciągu. Zadanie
Napisz program, który:
* wczyta ze standardowego wejścia liczbę naturalną n, oznaczającą liczbę elementów ciągu, a następnie liczby a1, a2, … an, * wypisze na standardowe wyjście liczbę różnych elementów ciągu a1, a2, … an.
Wejście
* W pierwszym wierszu wejścia znajduje się jedna liczba naturalna n, * w drugim wierszu wejścia znajduje się n liczb całkowitych a1, a2, … an., -2000000000<=ai <=2000000000, pooddzielanych pojedynczymi odstępami.
Wyjście
W jedynym wierszu wyjścia należy wypisać jedną liczbę naturalną k, oznaczającą liczbę różnych elementów w ciągu a1, a2, … an.. Przykład
#include <iostream>
using namespace std;
//funkcja sprawdza, czy w tablicy
//jest juz zadany element
bool find(int* tab, int size, int elem)
{
for(int i=0; i<size; i++)
if(tab[i] == elem)
return true;
return false;
}
int main(int argc, char *argv[])
{
//wczytujemy liczbe wyrazow ciagu
int size;
cin>>size;
int counter = 0;
//tworzymy tymczasowa tablice
int *tab = new int[size];
//wypelniamy tymczasowa tablice wartosciami INT_MAX
for(int i=0; i<size; i++)
tab[i] = INT_MAX;
//wczytujemy kolejne wyrazy ciagu
for(int i=0; i<size; i++)
{
int buff;
cin>>buff;
//liczymy i zapamietujemy niepowtarzajace sie wyrazy
if( !find(tab,size,buff) )
{
tab[counter] = buff;
counter++;
}
}
cout<<counter<<endl;
delete []tab;
system("PAUSE");
return 0;
}