Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Unikalne wartości

Ostatnio zmodyfikowano 2021-02-12 13:01
Autor Wiadomość
Bemowianin03
Temat założony przez niniejszego użytkownika
Unikalne wartości
» 2021-02-11 22:47:52
Witam, mam problem z dokończeniem programu. Program ma za zadanie wypisać wszystkie liczby z tablicy wprowadzane przez użytkownika, kiedy liczba się powtórzy to program pominie ją przy wypisaniu zawartości. Program działa do momentu powtórzenia się w tablicy elementów.


C/C++
#include <iostream>
const int n = 5;
void CzySiePowtarzaja( int tablica[ ] )
{
   
int wynik[ n ];
   
for( int i = 0; i < n; i++ )
   
{
       
bool dobrze = true;
       
for( int j = 0; j < i; j++ )
       
{
           
if( tablica[ i ] == tablica[ j ] )
           
{
               
dobrze = false;
               
break;
           
}
        }
       
if( dobrze )
           
 wynik[ i ] = tablica[ i ];
       
   
}
   
for( int i = 0; i < n; i++ )
       
 std::cout << wynik[ i ];
   
}
int main()
{
   
int tab[ n ], liczba;
   
for( int i = 0; i < n; i++ )
   
{
       
std::cin >> liczba;
       
tab[ i ] = liczba;
   
}
   
CzySiePowtarzaja( tab );
}
P-178083
nanoant20
» 2021-02-12 09:08:07
Program działa do momentu powtórzenia się w tablicy elementów.
bynajmniej, program wcale nie działa

//edit
@DejaVu dziękuje za przypomnienie, zapominam o tym, zaraz naniosę poprawkę

 kiedy liczba się powtórzy to program pominie ją przy wypisaniu zawartości.
najprościej by było wypełnić tablicę int wynik[ n ] = {0}; zerem w miejscu powtórzenia
lub pokusić się o tablicę dynamiczną czy kontener vector
C/C++
//int wynik[ n ] = {0};
vector < int > wynik;
for( int i = 0; i < n; ++i )
{
   
bool dobrze = true;
   
for( int j = 0; j < i; j++ )
   
{
       
if( tablica[ i ] == tablica[ j ] )
       
{
           
dobrze = false;
           
break;
       
}
    }
   
if( dobrze )
   
{
       
//wynik[ i ] = tablica[ i ];
       
wynik.push_back( tablica[ i ] );
   
}
   
}
//for( int i = 0; i < n; i++ )
for( unsigned int i = 0; i < wynik.size(); i++ )
   
 std::cout << wynik[ i ] << " ";

//edit 14:18
chciałem ten problem rozwiązać za pomocą właśnie tego sposobu.
Przykład - powiększająca się tablica
P-178085
DejaVu
» 2021-02-12 10:02:14
@nanonat20: nie działał, bo tekst nie był sformatowany i znacznik [i] zamieniało na kursywę :P
P-178087
Bemowianin03
Temat założony przez niniejszego użytkownika
» 2021-02-12 13:01:41
@nanonat20 dzięki za pomoc, prawdę mówiąc wiedziałem jak zmienić tablicę wynik[] na vectora, jednak chciałem ten problem rozwiązać za pomocą właśnie tego sposobu. Co do reszty dzięki za pomoc, już wiem wszystko co chciałem. Dzięki jeszcze raz :D
P-178088
« 1 »
  Strona 1 z 1