Zadatak iz nizova u C-u?
Prikazujem rezultate 1 do 3 od 3

Tema: Zadatak iz nizova u C-u?

  1. #1
    Zainteresovan član
    Učlanjen
    01.06.2005.
    Lokacija
    *M*e*d*j*u* *z*v*e*z*d*a*m*a*
    Poruke
    185
    Reputaciona moć
    47

    Question Zadatak iz nizova u C-u?

    [font=Arial]Zadatak u C-u, oblast nizovi[/font]
    nek resi neko ko zna:

    [font=Arial]U nizu od n brojeva vodeci broj (ako postoji) je onaj koji se pojavljuje najmanje [n/2]+1 puta. Napisati funkciju koja vraca indeks i takav da je a[i] vodeci element. Ako u nizu ne postoji vodeci element onda vraca -1.[/font]

    Unapred Hvala!!!
    * V V
    e e *
    * n n
    d d *
    * i i
    * *



  2. #2
    Peruzzi nije na forumu
    је дошао тихо и ушао у легенду...
    Domaćin Peruzzi (avatar)
    Učlanjen
    03.08.2003.
    Pol
    muški
    Lokacija
    Shumadija
    Poruke
    3.924
    Reputaciona moć
    92

    Podrazumevano Re: Zadatak iz nizova u C-u?

    rado bih pomogao al nista mi nije jasno ovo oko i. kako da vrati indeks od vise od polovine clanova niza?


  3. #3
    Početnik _Doctor_ (avatar)
    Učlanjen
    05.10.2005.
    Lokacija
    Novi Beograd
    Poruke
    34
    Reputaciona moć
    0

    Podrazumevano Re: Zadatak iz nizova u C-u?

    Kod:
    #include <stdio.h>
    #include <stdlib.h>
    
    int pojavljivanje (const int* niz, int n, int broj){
    	int p, i;
    	for(p=i=0; i<n; p += niz[i++] == broj);
    	return  p;
    }
    
    int vodeciBroj (const int* a, int n){
    	int poj = (int)(n / 2)+1;
    	int i, j,
    		prethodnoPoj = 0,
    		index = -1;
    
    	for(i=0; i<n; i++){
    		for(j=0; j<i && a[i] != a[j]; j++);
    		if(i == j){  /*  Ako prodje ovaj uslov to znachi da 
    			          je taj broj jedinstven do sada i za njega
    				  treba proveriti broj pojavljivanja
    			       */
    			int p = pojavljivanje(a, n, a[i]);
    
    			/*
    			   Ovde proveravam da li se taj broj pojavljuje dovoljan broj puta 
    			   i ako da proveri da li je taj broj najvecci do sada
    			 */
    			if(p >= poj && p > prethodnoPoj){
    				prethodnoPoj = p;
    				index = i;
    			}
    
    		}
    	}
    	return index;
    }
    
    
    
    main () {
    	int* a, n, i;
    	while(1){
    		printf("\nn? ");
    		scanf("%d",&n);
    	if(n <= 0)break;
    	    printf("A? "); a = malloc(n * sizeof(int));
    		for(i=0; i<n; scanf("%d",&a[i++]));
    		i = vodeciBroj(a, n);
    
    		if(i == -1)
    			printf("Takav broj ne postoji!\n");
    		else
    			printf("Vodeci broj je: a[%d]=%d\n", i+1, a[i]);
    		free(a); a = NULL;
    	}
    }
    "Nobody is safe from me, No' not even me !"

Slične teme

  1. Zadatak........
    Autor NightWalker u forumu Prirodne nauke
    Odgovora: 21
    Poslednja poruka: 28.05.2009., 22:06
  2. Duzine nizova
    Autor kakokako u forumu Programiranje
    Odgovora: 25
    Poslednja poruka: 23.10.2008., 17:30
  3. zadatak
    Autor pupsjoca u forumu Prirodne nauke
    Odgovora: 8
    Poslednja poruka: 19.10.2008., 14:33
  4. Zadatak
    Autor Andromeda u forumu Prirodne nauke
    Odgovora: 5
    Poslednja poruka: 18.08.2005., 09:22
  5. Zadatak u C-u
    Autor Bigjr u forumu Programiranje
    Odgovora: 9
    Poslednja poruka: 16.07.2004., 15:53

Pravila za slanje poruka

  • Ne možete kreirati novu temu
  • Ne možete poslati odgovor
  • Ne možete dodati priloge
  • Ne možete prepraviti svoju poruku
  •