Problem kod srednje vrednosti u zadatku

Problem kod srednje vrednosti u zadatku

offline
  • Pridružio: 15 Maj 2012
  • Poruke: 396

Imam zadatak da napravim program koji ce da prikuplja ocene sa studentskih testova i da napravi tabelu ocena i da ispise, videcete u programu, ali i da napise srednu vrednost tj. aritmeticku sredinu testa. I ja to sve uradim, ali me aritmeticka sredina zeza, jer ono uzme samo jednu(prvu) ocenu koja se upise i deli se sa onoliko ocena koliko je napisano.
Znaci upsiem 5, 5, 5, 5 i 5 i ono uzme ovu prvu 5 i podeli sa 5 i da 1.00.
Evo kod:
#include <stdio.h> #include <stdlib.h> #include <ctype.h> #define OPSEG 5 #define BRZNAK 20 int main() {     int kofa[OPSEG+1] = {0};     char ulbaf[BRZNAK];     int ocena;     int n, na = 0;     int ocena5 = 0, ocena4 = 0, ocena3 = 0, ocena2 = 0, ocena1 = 0;     float SrednjaOcena;     printf("Unesite ocenu koju je dobio studenat sa testa od 1 do 5:\n");     while(1){     if(gets(ulbaf) == NULL){         fprintf(stderr, "Nepoznata ocena!");         exit(EXIT_FAILURE);         continue;     }     if(!(isdigit(ulbaf[0]))){         putchar('\n');         break;     }     ocena = atoi(ulbaf);     if(ocena >= 1 && ocena <= OPSEG){         ++kofa[ocena];         ++na;     }     SrednjaOcena = 0;     SrednjaOcena = SrednjaOcena + kofa[ocena];     SrednjaOcena = SrednjaOcena / na;         if(ocena == 5){         ++ocena5;     }     else if(ocena == 4){         ++ocena4;     }     else if(ocena == 3){         ++ocena3;     }     else if(ocena == 2){         ++ocena2;     }     else if(ocena == 1){         ++ocena1;     }     else{         fprintf(stderr, "Podatak izvan opsega!");         exit(EXIT_FAILURE);         continue;         }     }     printf("\n\nREZULTATI:\nOcena\tBroj");     for(n = 0; n <= OPSEG; ++n){         printf("\n%d\t%d", n, kofa[n]);     }     printf("\n\nSrednja ocena testa je %.2f", SrednjaOcena);     printf("\n%d ucenika je dobilo 5", ocena5);     printf("\n%d ucenika je dobilo 4", ocena4);     printf("\n%d ucenike je dobilo 3", ocena3);     printf("\n%d ucenika je dobilo 2", ocena2);     printf("\n%d ucenika je dobilo 1\n", ocena1);     system("PAUSE");     return EXIT_SUCCESS; }

Hvala unapred!



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Software developer
  • Pridružio: 06 Sep 2005
  • Poruke: 3800
  • Gde živiš: Beograd

Na brzaka bih rekao da je problem u ovome
SrednjaOcena = 0;
i dva reda ispod, ti stalno racunas i resetujes, a promenljivu 'na' ne resetujes.(doduse i ne treba, ali ne treba ni ovo Smile )

Pravilno bi bilo:
Izvan petlje definicses promenljivu zbir npr. i stavis je na nula, i imas onu promenljivu 'na' koja broji ocene koliko sam skapirao(daj im malo lepsa imena Smile )
U petlji dodajes na zbir trenutnu ocenu, a na kraju PRE STAMPANJA izracunas srednju vrednost.



Ko je trenutno na forumu
 

Ukupno su 3717 korisnika na forumu :: 107 registrovanih, 8 sakrivenih i 3602 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 20624 - dana 04 Apr 2026 04:18

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: Agape, alex71, as2025, bato_banjaluka, Belac91, bobor, bojank, bojcistv, Bombona, Boris.A, BrusLi, celt, Cirkon, comi_pfc, CrveniSolaris, d.arsenal321, dankisha, dejan1972, dejankm, Dekanovic, deLacy, Demi87, Denaya, Dragan7777, Draganeli, draganl, dragoljub11987, DragoslavS, Duh16, dunavzed, feanor, galerija, Great White, GveX, Hans Gajger, IpMan, Ir, Ivanmateja, Jager715510, Johny Sack, jon istvan, Jozo74, Kajzer Soze, kaput21, KizJ, komenski, Konda, Koser, kybonacci, Lap720, Litostroton, MarijaC84, mat, mercedesamg, metallac777, Mi lao shu, Milan Miscevic, milanpb, Miler88, MiljanXD, milos.cbr, milutin134, Mićko, Mrav Obrad, Mzee, narandzasti, nelezele, OKT, Orc, Pancevac, Pantaaa, Pantelejmon, pceklic, peho_atropin, Piani Jazzer, pirke96, Podmukli neprijatelj, Posmatrač2025, Qwertyuio, radza1, raptorsi, read-only, RileHerc, Sančo, Seeker, shlauf, singa, Sirius, SirOliver, Soslan, SpaDej, Srpska zauvjek, sspp, stibium51, stokssone, Tanasko95, Tanjagre, Tetejac82, The_new_Statesman, umpah-pah, Uros Cuore Sportivo, Veless, wolverined4, yagosh, ZetaMan, zlaya011, Zoca