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 1468 korisnika na forumu :: 135 registrovanih, 7 sakrivenih i 1326 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 6018 - dana 19 Dec 2025 13:41

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: -[CoA]-, 357magnum, 4thFlavian, Agape, Ageofloneliness, aleksamaki, Aleksej, ALFASPORTIVO, B61, bigbear, Bob.Rock, Bobrock1, bojan313, Boroš, bounty hunters, C-Gun, cenejac111, Chainsaw, dekan.m, dekir, Denaya, Dioniss, djordje92sm, Doc, doktor097, Dorcolac, draganl, DuškoMraz, Dvojac005, Fabius, feanor, Giskard, GORDI, goxin, GrobarPovratak, hellenic, Hemi, ILGromovnik, IpMan, jalos, jeen yuhs, jmsk, joca83, jodzula, Jomini, kaput21, Kenanjoz, KimiMR, Klecaviks, Korle, kreker, Kriglord, kybonacci, lcc, LjubisaR, MaCS, Magarac, Magistar78, mainstream, Marko00, MarkoD, MarkoW, MIKI63, Mikisha, mikki jons, Miletić Zoran, milimoj, Milo97, Milos ZA, Milun24, Misterrno, Mitogna, mladen.zovko, mm1811, Moldovan, Ne doznajem se u oružje, nebojsag, Neutral-M, nikoladim, nnovakis, novator, nuke92, Od1sej, orfanel, paja69, Papadubi, pceklic, peho_atropin, pein, Pewac21, Plavi Jadran, Prečanin30, R_038, raso76, raster12, Remarqe, royst33, ruma, s0ne, saputnik plavetnila, savuni, Sevetar, Sharpshooter, Silvertooth, Sinduk, Sićko, SOVO515, Steeeefan, strelac07, suton, Tribal, urosbg, Username1000, Vaske8990, vathra, vensla, Vlad000, Vlada76, VladaKG1980, Vlado82, vobo, volimpivuvolimrakiju, Vrač, vuksa72, WELJKO, yrraf, Yugol33, Zastava, zdrebac, ZetaMan, zivojin32, zombicar153, zubri, šumar bk2, 223223