[ vahid @ 15.05.2005. 00:53 ] @
nista da vas ne lazem domaci je:

1. Visina ucenika jednog odeljenja predstavljena je nizom pri cemu visina devojcica su izrazene negativnim brojem.Program treba da utvrdi koliko u razredu ima decaka a koliko devojcica kao i prosecnu visinu decaka,prosecnu visinu devojcica kao i koliko su procentualno visi dechaci od devojcica.

2. Napisati C program koji celobrojan niz A od N=<50 elemenata izbacuje sve elemente koji imaju vrednost istu kao i vrednost promenljive izbaci ucitane sa ulaza
/* Pri realizaciji programa ne smeju se koristiti pomocni nizovi */


Ako neko hoce i moze hvala mu na pomoci :)

za ovaj drugi sam uradio nesto:

Code:

for(i=0;i<n;i++)
 {
 if(a[i]==z) a[i]=a[i++];
 printf("\n\t\t %d",a[i]);
 }


ovo izbacuje element koji mu zadam ali ne izbacuje ako ima vise i ako je u pitanju zadnji postavlja pocetnu vrednost=0.
[ MrLimeni @ 15.05.2005. 08:43 ] @
Evo ovo na brizinu pošto nemam vremena. Ovo ti je za drugi zadatak.

Code:

  int k=0;

  for (int i=0; i<n; i++){
       if (A[i] != izbaci)
          A[k++] = A[i];
  }
  n = k;


Nadam se da će ti koristiti. POZDRAV
[ MrLimeni @ 15.05.2005. 10:53 ] @
Evo ti kod za prvi zadatak.

Code:

int brDjevojcica = 0, brDjecaka = 0;
int ukVisinaDjevojcica = 0, ukVisinaDjecaka = 0;
float srVisinaDjevojcica, srVisinaDjecaka;

//ucitaj niz djaci...sa visinama djaka.

for(int i=0;i<brDjaka; i++){
    if (djaci[i]<0){
        brDjevojcica++;
        ukVisinaDjevojcica+=djaci[i];
    }
    else{
        brDjecaka++;
        ukVisinaDjecaka+=djaci[i];
    }
}
srVisinaDjevojcica = (float) ukVisinaDjevojcica/brDjevojcica;
srVisinaDjecaka = (float) ukVisinaDjcaka/brDjecaka;

//nisam vidio da treba i ova proctualna razlika...pa sam dodao sad na brzinu

int procent = (srVisinaDjecaka-srVisinaDjevojcica)/(srVisinaDjecaka/100);

[ vahid @ 15.05.2005. 14:37 ] @
postovanje Limeni

puno ti hvala. Nadam se da cu uskoro i ja raditi ljudima ovako zadatke :)

ps: celo odeljenje ti zahvaljuje...
[ alex @ 15.05.2005. 14:42 ] @
Ako nastavis sa trazenjem odgovora na zadate zadatke na Internetu umesto da ih resavas sâm, teeesko da ces u skorije vreme resavati drugima takve zadatke.

[ vahid @ 15.05.2005. 16:28 ] @
ok mora da se pocne na neki nacin, citajuci knjige ili gledajuci kako drugi radi... knjige trenutno nema zato zamolis nekog koje to prosao da ti pomogne. uvek je moguce uradit jedan zadatak na vise nacina, ja sam uradio na jedan (nestabilan) nacin.
Drugi zadatak:
Code:

#include<stdio.h>
#include<conio.h>
#define MAX_NIZ 30

int i,n,z,a[MAX_NIZ];
char odgovor;

void main()
{
 for(i=0;i<MAX_NIZ;i++) a[i]=0;
 textcolor(12);
do
{

 do
   {
clrscr();
printf("\n\t\t Broj elemenata niza X:");
scanf("%d",&n);
printf("\n\t\t Unesite elemente niza X:\n");
   }
   while(n<1 || n>MAX_NIZ );
   for(i=0;i<n;i++){
    printf("\t\t");
    scanf("%d",&a[i]);}

    printf("\n\t\t Unesite element koji brisete");

    scanf("%d",&z);

 clrscr();
 printf("\n\t\t Broj elemenata niza X n= %d.",n);
 printf("\n\t\t Unesite elemente niza X:");
 printf("\n\t\t");
for(i=0;i<n;i++)
 {
  textcolor(15);
  cprintf(" %d ",a[i]);}
  textbackground(7);
  textcolor(16);
  printf("\n");

for(i=0;i<n;i++)              
 {
 if(a[i]==z) a[i]=a[i++];   //ovde je problem, ovo radi za brisanje bilo kojeg elementa 
 printf("\n\t\t %d",a[i]); //ali da nije poslednji i da ne postoji vise takvih elemenata.
 }



  printf("\n\n\n\t\t\t Da li zelite da nastavite? (D/N)");
      flushall();
      scanf("%c",&odgovor);
}
     while (odgovor == 'd' || odgovor=='D');


 gotoxy(1,25);

 }



mrLimeni onaj tvoj nacin nece ili
[ MrLimeni @ 15.05.2005. 16:41 ] @
Citat:
vahid
Code:


#define MAX_NIZ 30 //prvo max_niza je 50

for(i=0;i<n;i++)              
 {
 if(a[i]==z) a[i]=a[i++];   //ovde je problem, ovo radi za brisanje bilo kojeg elementa 
 printf("\n\t\t %d",a[i]); //ali da nije poslednji i da ne postoji vise takvih elemenata.
 }







mrLimeni onaj tvoj nacin nece ili


mislim da bi umjesto ovog. mnogo bilo bolje da ide

Code:

  int k=0;

  for (int i=0; i<n; i++){
       if (A[i] != izbaci)
          A[k++] = A[i];
  }
  n = k;


brojac k ce se znaci samo pevecati kad se nadje element niza koji je razlicit od promjenljive izbaci. i u k ces imati broj elemenata niza razlicitih od izbaci..

i da citaj zadatak pa pokusaj da promjenljive zoves kako ti se kaze u zatatku..
npr. "izbaci" i "MAX_NIZ 50" jer to ce ti valjati u zivotu vjeruj mi.. :)
pokusaj ovo opet...
i daj makni ove ukrase...bar za prvu verziju.
[ vahid @ 16.05.2005. 00:57 ] @
da radio je naravno samo ja nisam dodao jos nesto :)
sad je sve ok.

Hvala i za prvi zadatak,radi odlicno.
[ vahid @ 17.05.2005. 23:07 ] @
Code:

I jel moze pomoc oko zastite unosa slova i znakova za elemente?

moze li zastita da se izvede koristeci samo stdio.h ??
moze li na ovaj nacin da se zastiti  if(a[i]>='ASCii kod od (0)' && a[i]<='ASCii kod od (9))??

ako ne moze od ovih piranje i nacina, kako moze ?
[ egic @ 26.05.2008. 20:41 ] @
Izvinjava se sto sam izbunario ovu staru temu ali...

no,ako moze neko da mi objasni ovaj red bio bih mu zahvalan,kako se definise "izbaci"


if (A != izbaci)

[ xeron @ 27.05.2008. 11:27 ] @
A je cjelobrojni niz (nit int-ova), u zadaku je navedeno da se izbaci unosi sa standardnog ulaza (tastatura).
Code:

int izbaci;
printf("Unesite vrijednost koju treba izbaciti iz niza: \n");
scanf("%d", &izbaci);