Kratko -Cout u petlji ne ispiše poruku? (cin radi)

poruka: 6
|
čitano: 1.222
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
6 godina
neaktivan
offline
Kratko-Cout u petlji ne ispiše poruku? (cin radi)

1.) cout u petlji ne ispiše poruku "unesi -- .član niza" ako stoji uvjet petlje i <n;

ispiše je samo ako stoji i<5 (što ne mogu staviti unaprijed jer korisnik unosi broj članova)-  ne kuzim zasto?  

(unos cin radi, mogu unijeti članove niza )  

 

2.) trebam formirati novi niz od članova unesenog niza koji su manji od 10.

gdje griješim u formiranju novog niza, ovako mi vraća output?

 

unesi n
5  // - ovo je n, i ispod njega 5 unesenih članova:
12
11
10
9
8
12 30143 -797812320 30143 0   // trebalo bi vratiti 9 8

 

link na compiler: http://cpp.sh/2plc5

 

 

#include <iostream>
using namespace std;

int main ()
{
    int n, x[100],y[100], br=0;
   cout << "unesi n "<< endl;
    cin >>n;

    for(int i=0; i<n; i++)
        {
        cout << "unesi "<< i+1 <<". član: "<<endl;
         cin >> x[i];

            if (x[i]<10) br++; //
            else    y[i]=x[i]; // formiranje novog niza
        }


// cout << "brojač manjih od 10: "<< br<<endl;    // radi tek ako ovo zakomentiram, inače ne ispisuje ništa?? 

      for(int i=0; i < n-br; i++)
        cout << y[i]<< " ";
}

 

Poruka je uređivana zadnji put sub 13.10.2018 14:40 (Tomo22).
 
0 0 hvala 0
6 godina
neaktivan
offline
Zapeo pri kreiranju novog integer niza

 

pokušavam bez pokazivača riješiti zadatak "napraviti novi niz sa članovima original integer niza koji su <10", ali zapeo sam

 

- ideja je da kad naiđem na i.-ti član koji je <10, da ga prebacim na kraj niza, na poziciju [n-1],

i onda sa n-- smanujem broj članova petlje, tako da ove prebačene na kraj (oni koji ne zadovoljavaju uvjet) neće ispisivati

 

ali ne znam kako da svaki idući član (redni broj i+1, i+2, i+3 ....) onda pomaknem "ulijevo",

tj da y[i+1] postane y[i] ... y[i+2] postane y[i+1], itd

 

Može pomoć?

 

 #include <iostream>
using namespace std;

int main ()
{
    int i, n, x[100],y[100], br=0;
   cout << "unesi n ";
    cin >>n;

    for(int i=0; i<n; i++)
        {
        cout << "unesi "<< i+1 <<". član: ";
         cin >> x[i];
            y[i]=x[i]; // kopiram sve elemente original niza u novi niz
        }
for(int i=0; i < n; i++)
        if (y[i]>10)
            {
              y[i] = y[n-1]; .... 
              n--;
            }  
       
      for(int i=0; i < br; i++)
        cout << y[i]<< " ";  // ispis članova novog niza, oni koji zadovoljavaju uvjet <10
}

 

 

Poruka je uređivana zadnji put ned 14.10.2018 18:19 (Tomo22).
 
0 0 hvala 0
6 godina
neaktivan
offline
Re: Zapeo pri kreiranju novog integer niza

probao sam i ovako, ovaj žuti dio ispod - znači da ako element zadovoljava uvjet, da se pridruži odg. članu novog niza

- ali onda mi npr . za unesene 12 4 7 9 89 -

vraća 0 4 7, umjesto 4 7 9 - dakle one koji ne zadovoljavaju uvjet ne ignorira nego im daje value 0

 

#include <iostream>
using namespace std;
int main ()
{
    int i, n, m=0, x[100],y[100];
   cout << "unesi n ";
    cin >>n;

    for(int i=0; i<n; i++)
        {
            cout << "unesi "<< i+1 <<". član: ";
            cin >> x[i];
        }

for(int i=0; i < n; i++)
        if (x[i]<10)
            {
                y[i]=x[i];
                m++; // broj članova novog niza
            }
       
      for(int i=0; i < m; i++)
        cout << y[i]<< " ";
}

Poruka je uređivana zadnji put ned 14.10.2018 18:37 (Tomo22).
15 godina
offline
Kratko -Cout u petlji ne ispiše poruku? (cin radi)

provjeri ovdje. nemam pojma o C++ ali možda pomogne. 

I know that you believe you understand what you think I said, but I am not sure you realize that what you heard is not what I meant.
Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
Kratko -Cout u petlji ne ispiše poruku? (cin radi)

Ako se referiram na tvoj kod

y[m++] = x[i]

 

Za novi niz moraš imati njegov brojač, a ne brojač od starog niza.

 
0 0 hvala 1
6 godina
neaktivan
offline
Re: Kratko -Cout u petlji ne ispiše poruku? (cin r
Floki kaže...

Ako se referiram na tvoj kod

y[m++] = x[i]

 

Za novi niz moraš imati njegov brojač, a ne brojač od starog niza.

hvala, tu negdje je bila greška stavio sam ovako

 

        if (x[i]<10)
            {
                y[m]=x[i];
                m++;
            }
       

- sad izgleda radi ako nisam nešto previdio, evo ispod cijeli kod

 

#include <iostream>
using namespace std;

int main ()
{
    int i, n, m=0, x[100],y[100];
   cout << "unesi n ";
    cin >>n;

    for(int i=0; i<n; i++)  // UNOS ČLANOVA NIZA
        {
            cout << "unesi "<< i+1 <<". član: ";
            cin >> x[i];
        }
       
for(int i=0; i < n; i++)
        if (x[i]<10)
            {
                y[m]=x[i]; // KREIRANJE NOVOG NIZA
                m++;
            }
       
      for(int j=0; j < m; j++)
        cout << y[j]<< " ";   // ISPIS NOVOG NIZA
}

 

OUTPUT:
unesi n 5                                                                                                                                            
unesi 1. član: 67                                                                                                                                    
unesi 2. član: 9                                                                                                                                     
unesi 3. član: 34                                                                                                                                    
unesi 4. član: 7                                                                                                                                     
unesi 5. član: 2                                                                                                                                     
9 7 2                                                                                                                                                
       
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice