24.2.3.24010840. Napisati program koji traži da se sa tastature unese n cijelih brojeva (pri čemu se n također prethodno zadaje sa tastature), i koji nakon toga ispisuje unesene brojeve izostavljajući duplikate (tj. brojeve koji se ponavljaju). Program treba takođe da ispiše i broj elemenata koji se ponavljaju. Na primjer, ukoliko se sa tastature unese niz od 15 brojeva: 7, 10, 4, 2, 4, 4, 5, 6, 7, 3, 9, 1, 8, 6 i 7 program treba da ispiše brojeve 7, 10, 4, 2, 5, 6, 3, 9, 1 i 8, kao i da ispiše da se 3 broja ponavljaju (to su brojevi 7, 4 i 6).

Opis rješenja:

Listing programa:

//izbacuje brojeve koji se ponavljaju u nizu i racuna koilko ih ima
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
unsigned int n;
int brojac(0);
cin>>n;
const unsigned int c(n);
unsigned int a[c],b[c];
for(int i=0;i<c;i++){
    cin>>a[i];
    b[i]=0;
}
for(int i=0;i<c;i++){
    bool t(true);
    for(int j=0;j<i;j++)
        if(a[j]==a[i]){
            t=false;b[i]=a[i];break;
            }    
    if(t)cout<<a[i]<<"  ";
    else{
        bool f(true);
        for(int k=0;k<i;k++)
            if(b[k]==b[i]){f=false;break;}
        if(f)brojac++;
    }
}
if(brojac!=0)cout<<endl<<brojac;
else cout<<"\n\nNema brojeva koji se ponavljaju u unijetom nizu.";
getch();
return 0;
}         

Ispis na ekranu:

Riješeni zadaci 2    Index