Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Iz odredjenog niza prikazati sva max. pojavljivanja elemenata

[es] :: C/C++ programiranje :: C/C++ za početnike :: Iz odredjenog niza prikazati sva max. pojavljivanja elemenata

[ Pregleda: 2386 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Milos88_vkbgd
Beograd

Član broj: 75464
Poruke: 282
*.adsl-1.sezampro.yu.

Sajt: milos88_vkbgd.webs.com/ap..


+1 Profil

icon Iz odredjenog niza prikazati sva max. pojavljivanja elemenata10.11.2010. u 01:47 - pre 163 meseci
Code:

#include<stdio.h>
void main(void)
{
  int n,i,max,maxpoz=0,x[30];

  printf("\n Broj elemenata celobrojnog niza X je:");
  scanf("%d",&n);

  printf("\n Unesite niz X:\n\n");
  for(i=0;i<n;i++)
    scanf("%d",&x);

  max=x[0];
  for(i=0;i<n;i++)
    if(x>max)
    {
      max=x;
      maxpoz=i;
    }

  printf("\n\n\t %d. element niza je maksimalan \n",maxpoz+1);
  printf("\t Xmax=%d \n",max);

  system("PAUSE");
}


Uradio sam da na osnovu koliko clanova niza imamo i na osnovu brojeva niza koje ukucam, program ispise poruku na ekranu koji je clan niza maximalan, tj. najveci. Medjutim kada u nizu ponovim 2 ili vise puta isti maximum, program samo ispisuje da je prva cifra maximum, za ostale ne. Da li moze neko da mi objasni sta da popravim/dodam?

Unapred zahvalan.

[Ovu poruku je menjao Mihajlo Cvetanović dana 10.11.2010. u 10:01 GMT+1]
Na ovom linku mozete i pogledati sta kupujete http://milos88_vkbgd.webs.com/apps/photos/album?albumid=7748164
Informacije o hardveru koji zelite da kupite nalaze se ispod slika, potrebno je samo kliknuti na sliku.
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Iz odredjenog niza prikazati sva max. pojavljivanja elemenata10.11.2010. u 09:04 - pre 163 meseci
Ako hoćeš da ispišeš sve indekse sa datom vrednošću onda ti treba for petlja. Ako je dati element niza jednak datoj vrednosti onda ispiši indeks elementa. U takvoj situaciji ti ne treba maxpoz.
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
212.200.65.*

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Iz odredjenog niza prikazati sva max. pojavljivanja elemenata10.11.2010. u 09:24 - pre 163 meseci
Ne zaboravi da je x niz:
Citat:

Code:

  for(i=0;i<n;i++)
    scanf("%d",&x);


...pa bi i linija za unos trebalo da glasi scanf("%d",&x[ i ]);. Opet, da istina bude kompletna, u knjigama se savetuje i izbacivanje znaka ampersand (&) kada je unos elemenata nekakvog niza u pitanju, jer je to "interno" već pokazivač...

Slično tome:
Citat:

Code:

  max=x[0];
  for(i=0;i<n;i++)
    if(x>max)
    {
      max=x;
      maxpoz=i;
    }


... if(x[ i ]>max). Dalje, ako si PRVI element niza proglasio za MAX (max=x[0];), onda petlja moze da krene od 1, a ne od 0. Ovo napominjem zbog poštovanja ideje odabranog algoritma, a svejedno, program će raditi u oba slučaja. Sledeće, maxpoz=i; je suvisno (ukloniti i iz deklaranice sa inicijalizacijom), jer se kasnije na osnovu Mihajlovog odgovora ispisuju sve MAX vrednosti, uporedjivanjem sa onim jednim pronadjenim MAX .

Tj, potrebna ti je petlja za prolazak od "pocetka do kraja" niza (kao kod unosa ili odredjivanja jedne maksimalne vrednosti). Kada se trenutna vrednost niza poklopi sa maksimalnom, onda je samo ispises. Tako ce biti ispisane sve maksimalnih vrednosti.

I na kraju, jos jedan savet - algoritam za odredjivanje jedne max vrednosti se moze smestiti i u petlji za unos podataka, ali ako se radi o klasicnim skolskim zadacima, bolje nemoj komplikovati...




[Ovu poruku je menjao X Files dana 10.11.2010. u 10:34 GMT+1]
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Iz odredjenog niza prikazati sva max. pojavljivanja elemenata

[ Pregleda: 2386 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.