Program za C, HITNO

anduril

Početnik
Poruka
2
Oprostite sto upadam ovako iz vedra neba, ali treba mi pomoc, a koliko vidim vi ste sposobni da mi pomognete...
tek sam poceo programirati i nisam bas najbolji, ali u vec napisani program moram prepraviti da radi sa pointerima i ubaciti jos jednu funkciju...

funkciju sam dodao (valjda je dobro dodana, sto cisto sumnjam) i ona mora zbrojiti brojeve koji se nalaze izmedju ispisanih granica...

evo programa da bude jasnije:









#include <stdio.h>

int broji(int n, float polje[], float dg, float gg) {

int i, ibroj;

if (dg < gg) {

for (ibroj = 0, i = 0; i < n; i++) {

printf ("%f\n", polje);

if(polje > dg && polje < gg) {

++ibroj;

}

}

return ibroj;

} else {

return -1;

}

}

int zbroj(int n, float polje[], float dg, float gg) {

int i, ibroj;
int z;
z= dg + gg;
printf("%f\n", polje);
}



int main (void) {

int n, i, ibr;

float x[100], dgr,ggr;



do {

printf ("Upisite broj clanova polja>");

scanf ("%d", &n);

} while (n < 1 || n >= 100);

printf ("Upisite vrijednosti clanova polja >");

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

scanf ("%f", &x);

}

do {

printf ("Upisite donju i gornju granicu >");

scanf ("%f %f", &dgr, &ggr);

ibr = broji(n, x, dgr, ggr);

if(ibr == -1) {

printf ("Neispravno zadane granice\n");

break;

} else {

printf ("U polju je pronadjeno %d clanova"

" vecih od %f i manjih od %f\n", ibr,

dgr, ggr);

}
zbroj;
} while (1);

}
 
Nisam te bas najbolje skontao, al' pretpostavljam da je ovo ono sto si trazio:
Kod:
#include <stdio.h>

int broji(int *n, float polje[], float *dg, float *gg) {
int i, ibroj;
if (*dg < *gg) {
for (ibroj = 0, i = 0; i < *n; i++) {
printf ("%f\n", polje[i]);
if(polje[i] > *dg && polje[i] < *gg) ++ibroj;
}
return ibroj;
} 
else 
return -1;
}
int zbroj(int n, float polje[], float dg, float gg) {
int z = 0, iBroj;
for (int i = 0; i < n; i++) {
if(polje[i] > dg && polje[i] < gg) z += polje[i];
}
return z;
}
int main (void) {
int n, i, ibr;
float x[100], dgr, ggr;
do {
printf ("Upisite broj clanova polja>");
scanf ("%d", &n);
} while (n < 1 || n >= 100);
printf ("Upisite vrijednosti clanova polja >");
for (i = 0; i < n; i++) {
scanf ("%f", &x[i]);
}
do {
printf ("Upisite donju i gornju granicu >");
scanf ("%f %f", &dgr, &ggr);
ibr = broji(&n, x, &dgr, &ggr);
if(ibr == -1) {
printf ("Neispravno zadane granice\n");
break;
} else {
printf ("U polju je pronadjeno %d clanova"
" vecih od %f i manjih od %f\n", ibr,
dgr, ggr);
}
printf("Zbir brojeva koji se nalaze u opsegu granica je: %i\n", zbroj(n, x, dgr, ggr));
} while (1);
}
 
ne znasm shto da dodas f-ju zbroj, ti si tamo sabrao donju i gornju granicu

samo bi trebalo kad pronadje broj izmedju i da ga doda u sumu. na pocetku stavish da je suma 0.
tako neshto. ne treba nova f-ja i mislim da ne trebaju zagrade kad je samo jedna naredba

moze i *(polje+i) umesto polje ! valjda

ei kolega osim z+= treba da se inkrementira iBroj koji broji..onda idu i zagrade
 
?:
ne znasm shto da dodas f-ju zbroj, ti si tamo sabrao donju i gornju granicu

samo bi trebalo kad pronadje broj izmedju i da ga doda u sumu. na pocetku stavish da je suma 0.
tako neshto. ne treba nova f-ja i mislim da ne trebaju zagrade kad je samo jedna naredba

moze i *(polje+i) umesto polje ! valjda

ei kolega osim z+= treba da se inkrementira iBroj koji broji..onda idu i zagrade

Slazem se nije potrebna nova funkcija, al' nisam znao sta je tacno problem, mislio sam da mu je to zadato zadatkom, pa hajde da odradimo kako trazi.
A za iBroj u prvoj funkciji se inkrementira, a u drugoj on nije ni potreban.
 

Back
Top