Wpis z mikrobloga

#programowanie w miejscu wylosowanego duplikatu miał wypisać zero, gdzie jest błąd? Bez żadnych funkcji, tylko same pętle.
`

#include
#include
#include

using namespace std;

int main()
{
int i=0,pow=0,j=50;
srand(time(NULL));

int los[50];

while (i<50)
{

pow = rand()%10+1;
j=50;
while(j>=0) //sprawdza liczby aż do pierwszej w tablicy
{
if (pow==los[j])
{
los[i]=0; //sprawdza warunek
}
j--;
cout<
  • 7
@Qardius: a o pętli for słyszał? poza tym, algorytm jest zły. za każdym razem szukasz powtórzeń w całej tablicy, a powinieneś sprawdzać tylko poprzednie elementy. indeksowanie też jest złe, bo wychodzisz poza zakres.
@Qardius: Jak kolega wyżej wspomniał brak inicjalizowania elementów tablicy, w niektórych językach nie trzeba tego robić, C++ tego wymaga, najprościej zainicjalizować pierwszy element tablicy, a reszta zostanie uzupełniona 0.

Drugą rzeczą jest to że pomimo tego że oznaczasz sobie 0 powtórzone elementy, to i tak potem przypisujesz im wartość, więc nigdy nie dostajesz tych 0 które chciałbyś mieć.

Prosta przeróbka Twojego kodu:
https://ideone.com/XmVm38