Program C++

poruka: 9
|
čitano: 4.225
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
15 godina
neaktivan
offline
Program C++

kako napraviti program koji ucitava 10 brojeva , te ispisuje koliko ima ponavljanja pojedinog broja? ja sam ovdje napravila program, ali je ogranicen na 100 pocetnih brojeva. dakle, kako se moze napraviti program koji moze ucitati bilo koji broj? Hvala!

 

#include<iostream>

using namespace std;

int main(){

int broj[100]={0};
int vrijednost;

cout<<"upisi 10 brojeva od 1-100!"<<endl;

for (int i=0;i<10;i++)
{
  cin>> vrijednost;
  broj[vrijednost-1]++;
}

for(int j=0;j<100;j++){

    if (broj[j]>1)
    cout<<(j+1)<<" se ponavlja "<<broj[j]<< "puta."<<endl;

 
0 0 hvala 0
16 godina
neaktivan
offline
RE: Program C++
prvasica kaže...

kako napraviti program koji ucitava 10 brojeva , te ispisuje koliko ima ponavljanja pojedinog broja? ja sam ovdje napravila program, ali je ogranicen na 100 pocetnih brojeva. dakle, kako se moze napraviti program koji moze ucitati bilo koji broj? Hvala!

 

#include<iostream>

using namespace std;

int main(){

int broj[100]={0};
int vrijednost;

cout<<"upisi 10 brojeva od 1-100!"<<endl;

for (int i=0;i<10;i++)
{
  cin>> vrijednost;
  broj[vrijednost-1]++;
}

for(int j=0;j<100;j++){

      if (broj[j]>1)
      cout<<(j+1)<<" se ponavlja "<<broj[j]<< "puta."<<endl;

 

ovako na blef, mozes iskoristiti vector.

 

vector<int> broj;

 

onda u njega dodajes integere broj.push_back(3) -> to dodaje broj 3 na kraj niza

 

pristupas preko [] kao i obicnom nizu.

 

detalje mozes proguglati

17 godina
offline
Program C++

Ovaj koncept koji si navela u svom rješenju da broj ponavljanja nekog broja u nizu dobiješ na način da indeks niza iskoristiš kao brojač je neprimjenjiv u ovom slučaju

u kojem unosiš proizvoljne brojeve koji nisu u nekom intervalu.

Ja sam to riješio na način da sam najprije sortitao niz prema uzlaznim vrijednostima, a zatim dvostrukom petljom prebrojao broj ponavljanja svakog broja i ispisao prvi broj

od onih koji se ponavljaju.

 

 

#include<iostream>
using namespace std;


int main()
{
    int niz[10];
    int i, j, a, pom;

    cout<< "Unesi deset brojeva: " << endl;    
    for(i=0; i<10; i++) {
       cout<< (i+1) << ". broj: ";
       cin>> niz[i];
    }

    for(i=0; i<9; i++)                    // Bubble sort sortiranje
       for(j=0; j<9-i; j++)
          if(niz[j+1]<niz[j]) {
             pom=niz[j];
             niz[j]=niz[j+1];
             niz[j+1]=pom;
          }

    i=0;
    do {                                  // dvostrukom petljom dobijemo broj ponavljanja broja u nizu
       a=0;
       for(j=i; j<10; j++)
          if(niz[i]==niz[j])
             a++;
       cout<< "Broj " << niz[i] << " ucitan je: " << a << " puta" << endl;
       i+=a;
    }while(i<10);
}

 
0 0 hvala 0
17 godina
offline
Program C++

Inače, vidim da su te na onom drugom topicu davili sa teorijom, istina, teoriju moraš dobro znati, ali čak je bitnije i postaviti dobar koncept pri rješavanju

ovakve vrste zadataka od same teorije.

Da ti to pokažem kod ovog tvog zadatka sa drugog topica: "1)napisati program koji s ulaza ucitava 10 brojeva, te svaki od brojeva ispisuje u posebnom retku, i u svakom od tih redaka iza ispisanog broja, ispisuje sve ucitane brojeve vece od njega."

 

1. odlučujem koristiti polje pošto moram usporediti svaki broj sa svakim

2. prilikom ispisa brojeva odlučujem koristiti unutarnju petlju za postaviti uvjet if za ispis brojeva većih od trenutno ispisanog

 

for(i=0; i<10; i++) {

     cout<< niz[i] << " ";

     for(j=0; j<10; j++)

            if(niz[i]<niz[j])

              cout<< niz[j] << " ";

     cout<< endl;

     }

 

Dakle, ja sam u svojoj glavi i prije nego što sam počeo kucati kod zamislio dvije petlje, prvu vanjsku koja ispisuje broj po broj, i drugu unutarnju, koja za svaki broj koji ispišem prvom petljom ponovno

prolazi cijeli niz i traži logičkim uvjetom if brojeve koji su veći od broja iz prve petlje i ispisuje ih.

Budeš li se držala ovog koncepta, neće ti ispiti biti teški, naravno, uz svladavanje teorije, to postižeš vježbom

Poruka je uređivana zadnji put uto 14.9.2010 13:30 (Floki).
 
0 0 hvala 0
15 godina
neaktivan
offline
RE: Program C++
Floki kaže...

Inače, vidim da su te na onom drugom topicu davili sa teorijom, istina, teoriju moraš dobro znati, ali čak je bitnije i postaviti dobar koncept pri rješavanju

ovakve vrste zadataka od same teorije.

Da ti to pokažem kod ovog tvog zadatka sa drugog topica: "1)napisati program koji s ulaza ucitava 10 brojeva, te svaki od brojeva ispisuje u posebnom retku, i u svakom od tih redaka iza ispisanog broja, ispisuje sve ucitane brojeve vece od njega."

 

1. odlučujem koristiti polje pošto moram usporediti svaki broj sa svakim

2. prilikom ispisa brojeva odlučujem koristiti unutarnju petlju da postaviti uvjet if za ispis brojeva većih od trenutno ispisanog

 

for(i=0; i<10; i++) {

     cout<< niz[i] << " ";

     for(j=0; j<10; j++)

            if(niz[i]<niz[j])

              cout<< niz[j] << " ";

     cout<< endl;

     }

 

Dakle, ja sam u svojoj glavi i prije nego što sam počeo kucati kod zamislio dvije petlje, prvu vanjsku koja ispisuje broj po broj, i drugu unutarnju, koja za svaki broj koji ispišem prvom petljom ponovno

prolazi cijeli niz i traži logičkim uvjetom if brojeve koji su veći od broja iz prve petlje i ispisuje ih.

Budeš li se držala ovog koncepta, neće ti ispiti biti teški, naravno, uz svladavanje teorije, to postižeš vježbom

 

 

SUPER!!! Hvala!!! To mi treba! nikako to nisam znala napraviti. Ovako izgleda jako jednostavno.

trebam malo skuziti kako funkcionira petlja u petlji-upravo sam tu lekciju presla.

 

Ovdje sve funkcionira, samo sto se pojavljiva problem da kada upisem npr.

 

4

5

1

3

6

 

izbaciva kao rezultat

 

456

56

1456- nije tocno

3456-nije tocno

6

17 godina
offline
Program C++

Sad onaj treći možeš sama, dakle dvostruka petlja i uvjet if((niz[j]/niz[i])==2)

Možeš ti to, zadnji put ti je dobro išloNamigiva

 

Inače, ono je točno "ispisiva iza njega sve brojeve veće od njega"

Poruka je uređivana zadnji put uto 14.9.2010 13:42 (Floki).
 
0 0 hvala 0
15 godina
neaktivan
offline
RE: Program C++
Floki kaže...

Sad onaj treći možeš sama, dakle dvostruka petlja i uvjet if((niz[j]/niz[i])==2)

Možeš ti to, zadnji put ti je dobro išloNamigiva

 

Inače, ono je točno "ispisiva iza njega sve brojeve veće od njega"

Da istina! krivo sam procitala. Hvala ti puno. Sada cu sve malo prouciti.

 

A sjecas se? :-))) ma ovaj sam ispit ostavila sa strane, posto mi je matematika dobro isla. sad cu se napokon pozabaviti s C++. ;-)

17 godina
offline
Program C++

Čini mi se da dobro radi, pa provjeri još jednom:

 

 

#include<iostream>
using namespace std;


int main()
{
    int niz[10];
    int i, j;

    cout<< "Unesi deset brojeva: " << endl;    
    for(i=0; i<10; i++) {
       cout<< (i+1) << ". broj: ";
       cin>> niz[i];
    }

    for(i=0; i<10; i++) {
     cout<< niz[i] << " ";
     for(j=0; j<10; j++)
            if(niz[j]>niz[i])
              cout<< niz[j] << " ";
     cout<< endl;
     }
}

Poruka je uređivana zadnji put uto 14.9.2010 14:01 (Floki).
 
0 0 hvala 0
15 godina
neaktivan
offline
RE: Program C++
Floki kaže...

Čini mi se da dobro radi, pa provjeri još jednom:

 

 

#include<iostream>
using namespace std;


int main()
{
    int niz[10];
    int i, j;

    cout<< "Unesi deset brojeva: " << endl;    
    for(i=0; i<10; i++) {
       cout<< (i+1) << ". broj: ";
       cin>> niz[i];
    }

    for(i=0; i<10; i++) {
     cout<< niz[i] << " ";
     for(j=0; j<10; j++)
            if(niz[j]>niz[i])
              cout<< niz[j] << " ";
     cout<< endl;
     }
}

radi, radi. ja sam krivo procitala zadatak. mislila sam da se trazi da se ispisu svi sljedeci brojevi koji su upisani a veci su od tog broja, a ne svi brojevi veci od tog broja bez obzira da li su upisani prije ili poslije tog broja.

1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice