Ile jest w tablicy różnych liczb? C++
Ile jest w tablicy różnych liczb? C++
Witam bardzo proszę o pomoc, nie wiem jak napisac program, który liczy ile jest w tablicy różnych liczb. Liczby podaje użytkownik. Z góry dziękuje za pomoc.
- kadiii
- Użytkownik
- Posty: 642
- Rejestracja: 20 gru 2005, o 21:04
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Pomógł: 130 razy
Ile jest w tablicy różnych liczb? C++
Algorytm zalezy od tego czy zakres liczb możliwych do podania przez użytkownika jest mały czy duży. Jesli mały, a liczby są całkowite to można zrobić dodatkową tablicę, kazdy indeks odpowiada wprost danej wartości. Przeletujemy pętlą i zwiększamy wartość komórki tablicy o indeksie jaką wartość odczytaliśmy z pierwotnej tablicy. Dzięki temu po jednej iteracji w tablicy ilość elementów o danej wartości i po dokonaniu jednej iteracji na tej tablicy uzyskujemy żądany efekt(zliczenie ilości niezerowych komórek). Jesli natomiast liczby nie mają konkretnego zakresu to najprościej je chyba posortować i potem zobaczyć ile jest różnych.
EDIT: Zmieniłem żeby nie wprowadzić kogoś w błąd.
Kod: Zaznacz cały
#include <iostream>
using namespace std;
main()
{
const int N=10;
int tab[N];
int i,licznik=1;
for(i=0;i<N;i++) cin>>tab[i];
sort(tab,tab+10);
for(i=0;i<N-1;i++)
if(tab[i]!=tab[i+1]) licznik++;
cout<<licznik;
}
Ostatnio zmieniony 14 maja 2009, o 20:06 przez kadiii, łącznie zmieniany 1 raz.
-
- Użytkownik
- Posty: 941
- Rejestracja: 17 gru 2007, o 21:48
- Płeć: Mężczyzna
- Lokalizacja: Kingdom Hearts
- Podziękował: 6 razy
- Pomógł: 222 razy
Ile jest w tablicy różnych liczb? C++
Chyba zły zakres podałeś, kadiii, w ostatnim forze. Powinno być
Kod: Zaznacz cały
#include <iostream>
using namespace std;
main()
{
const int N=10;
int tab[N];
int i,licznik=0;
for(i=0;i<N;i++) cin>>tab[i];
sort(tab,tab+10);
for(i=0;i<N-1;i++)
if(tab[i]!=tab[i+1]) licznik++;
cout<<licznik;
}
Ile jest w tablicy różnych liczb? C++
napewno N-1 bo jak mam program z N-1 to podaje o jedna liczbe za malo a jak jest bez to dobrze?
- kadiii
- Użytkownik
- Posty: 642
- Rejestracja: 20 gru 2005, o 21:04
- Płeć: Mężczyzna
- Lokalizacja: Wrocław
- Pomógł: 130 razy
Ile jest w tablicy różnych liczb? C++
hehe, tak to jest jak sie pisze z palca bez kompilatora. Powinien być licznik ustawiony na starcie na 1 - licznik=1; . A petla oczywiscie do N-1.