Forum Sveta kompjutera

Nazad   Forum Sveta kompjutera > Test Run > Programiranje

Programiranje Programski jezici, tehnike, alatke...

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 20.6.2015, 14:51   #161
Djordje Turjacanin
Deo inventara foruma
 
Član od: 15.6.2008.
Lokacija: Prnjavor, RS
Poruke: 3.872
Zahvalnice: 491
Zahvaljeno 1.031 puta na 664 poruka
Slanje poruke preko MSN-a korisniku Djordje Turjacanin Slanje poruke preko Skypea korisniku Djordje Turjacanin
Određen forumom Re: C programiranje

Evo na primjer imaš jedan brojač koji ti je na početku nula. Prvo se pozicioniraš na početak fajla, i onda u petlji čitaš pomoću fscanf podatke u studentu pošto znaš kako su fajlovi upisani, i tako dok ne dođeš do kraja datoteke. I onda ti je redni broj taj brojač + 1.
Djordje Turjacanin je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Djordje Turjacanin na korisnoj poruci:
mica1709 (24.6.2015)
Stara 20.6.2015, 14:56   #162
Teva
Starosedelac
 
Član od: 23.2.2006.
Lokacija: Tamo gde su kuće od čokolade i prozori od marmelade....
Poruke: 1.579
Zahvalnice: 195
Zahvaljeno 301 puta na 171 poruka
Određen forumom Re: C programiranje

Radio si brojanje studenata kada si radio prosečnu ocenu. Kao i za upis novog, kao i prosečnu ocenu potreban ti je broj studenata.. Bukvalno treba da iteriraš kroz ceo fajl i da izbrojiš studente.

Citiran post sam osakatio čisto da ne bude preveliki Obrati pažnju na boldovan snipet u kodu. Obrati samo pažnju kako i kad otvaraš fajl i za šta, pošto tu može da ti napravi problem gde će da upisuje. Nisam siguran da li ako ga otvoriš za rw da li ćeš čitati otpočetka a pisati na kraj, to će morati neko ko malo dublje radi sa tim da ti kaže (očekujem voodoo_ )


Citat:
mica1709 kaže: Pregled poruke
Probao sam i ovako ali i dalje mi prikazuje greške.
Kad ispravim ovako radi ali mi ne računa prosečnu ocenu studenata koji su položili nego prosečnu ocenu svih studenata. (Samo ti sad zbir ocena nije potreban)

Kod:
int main(int argc, char* argv[])
{
    Student student;
    FILE* f;
    float prosecna = 0;
    int broj_studenata = 0, zbir = 0, izbor;
    do
    {
        printf("************************************ MENI **************************************\n");
        printf("2. Prosecna ocena studenata koji su polozili\n");        
printf("********************************************************************************\n");
        printf("Unesite izbor:");
        scanf("%d",&izbor);
        switch(izbor)
        {
            case 2:
               f = fopen("C:\\fajl.txt", "r");
                while (ucitaj_studenta(f, &student))
                {
                    broj_studenata++;
                    zbir += student.ocena;
                }
                prosecna = zbir / (float)broj_studenata;
                fclose(f);
                printf("\n%.2f\n\n", prosecna);
                break;
            default:
                printf("\nNepravilan izbor.....\n");
        }
    }
    while(izbor != 3);
    return 0;
}
Teva je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Teva na korisnoj poruci:
mica1709 (24.6.2015)
Stara 20.6.2015, 15:05   #163
Teva
Starosedelac
 
Član od: 23.2.2006.
Lokacija: Tamo gde su kuće od čokolade i prozori od marmelade....
Poruke: 1.579
Zahvalnice: 195
Zahvaljeno 301 puta na 171 poruka
Određen forumom Re: C programiranje

@Djordje Šta bi na kraju ono za ispit? Jel očekivao da se radi naopačke ili da ispiše pretumbane reči?
Teva je offline   Odgovor sa citatom ove poruke
Stara 21.6.2015, 3:23   #164
Djordje Turjacanin
Deo inventara foruma
 
Član od: 15.6.2008.
Lokacija: Prnjavor, RS
Poruke: 3.872
Zahvalnice: 491
Zahvaljeno 1.031 puta na 664 poruka
Slanje poruke preko MSN-a korisniku Djordje Turjacanin Slanje poruke preko Skypea korisniku Djordje Turjacanin
Određen forumom Re: C programiranje

Nisu mi skinuli bodove tu pa pretpostavljam da je trebalo ovako kao što sam ja uradio, u svakom slučaju, bodove sam dobio, zadovoljan sam urađenim i to mi je dosta.
Djordje Turjacanin je offline   Odgovor sa citatom ove poruke
Stara 24.6.2015, 13:18   #165
mica1709
Banned
 
Član od: 2.5.2011.
Lokacija: Bujanovac
Poruke: 156
Zahvalnice: 205
Zahvaljeno jedanput na jednoj poruci
Određen forumom Re: C programiranje

Citat:
Djordje Turjacanin kaže: Pregled poruke
Evo na primjer imaš jedan brojač koji ti je na početku nula. Prvo se pozicioniraš na početak fajla, i onda u petlji čitaš pomoću fscanf podatke u studentu pošto znaš kako su fajlovi upisani, i tako dok ne dođeš do kraja datoteke. I onda ti je redni broj taj brojač + 1.
Ja ovo nikako da uradim kako treba. Umesto pravog rednog broja uvek mi ispisuje jedan. Evo kako sam napisao to što mi savetuješ u citiranoj poruci ali očigledno da negde grešim pa bih zamolio tebe ili nekog drugog da me ispravite.

Kod:
#include<stdio.h>

#define MAX_IME 15
#define MAX_PREZIME 15
#define MAX_STUDENATA 80

typedef struct studenti
{
    char ime[MAX_IME];
    char prezime[MAX_PREZIME];
    char tacka;
    int brojindeksa, ocena, rednibroj;
} Studenti;

Studenti student[MAX_STUDENATA];

int broj_studenata = 0;

int ucitaj_studenta(FILE *f, Studenti *s)
{
    char tacka;
    if(fscanf(f, "%d%c%s%s%d%d", &(s->rednibroj), &(s->tacka), s->ime, s->prezime, &(s->brojindeksa), &(s->ocena)) == 6)
        return 1;
    else
        return 0;
}

int main(int argc, char* argv[])
{
    Studenti student;
    FILE* f;
    char ime[MAX_IME];
    char prezime[MAX_PREZIME];
    float prosecna = 0;
    int broj_studenata = 0;
    int brojindeksa;
    int izbor;
    int ocena;
    do
    {
        printf("************************************ MENI **************************************\n");
        printf("1. Prikaz celog izvestaja\n");        
        printf("2. Upis novog studenta\n");
        printf("3. Izmena podataka o studentima\n");
        printf("4. Izlaz iz programa\n\n");
        printf("********************************************************************************\n");
        printf("Unesite izbor:");
        scanf("%d",&izbor);
        switch(izbor)
        {
            case 1:
                f = fopen("C:\\fajl.txt", "r");
                while (ucitaj_studenta(f, &student))
                {
                    printf("%d %c %s %s %d %d \n", student.rednibroj, student.tacka, student.ime, student.prezime, student.brojindeksa, student.ocena);
                }
                fclose(f);
                break;
            case 2:
				broj_studenata = 0;
				f = fopen("C:\\fajl.txt", "a");
				while (ucitaj_studenta(f, &student))
                {
                    broj_studenata++;
                }
				student.tacka = '.';
				student.rednibroj = broj_studenata+1;
				printf("Unesite ime studenta: \n");
				scanf("%s", &ime);
				printf("Unesite prezime studenta: \n");
				scanf("%s", &prezime);
				printf("Unesite broj indeksa: \n");
				scanf("%d", &brojindeksa);
				printf("Unesite ocenu studenta: \n");
				scanf("%d", &ocena);
				fprintf(f,"\n%d%c %s %s %d %d", student.rednibroj, student.tacka, ime, prezime, brojindeksa, ocena);
				fclose(f);
				printf("Fajl je uspesno sacuvan....\n");
				break;
            case 3:

            case 4:
                printf("\nHvala Vam .. Program se zatvara.......\n\n");
                break;
            default:
                printf("\nNepravilan izbor.....\n");
        }
    }
    while(izbor != 4);
    return 0;
}
[img=http://s10.postimg.org/pwd10ozr9/image.jpg]
mica1709 je offline   Odgovor sa citatom ove poruke
Stara 24.6.2015, 13:23   #166
Djordje Turjacanin
Deo inventara foruma
 
Član od: 15.6.2008.
Lokacija: Prnjavor, RS
Poruke: 3.872
Zahvalnice: 491
Zahvaljeno 1.031 puta na 664 poruka
Slanje poruke preko MSN-a korisniku Djordje Turjacanin Slanje poruke preko Skypea korisniku Djordje Turjacanin
Određen forumom Re: C programiranje

Nisi se pozicionirao na početak fajla. Prije while petlje, odnosno nakon otvaranja moraš premotati na početak.
Kod:
fseek (f, 0 , SEEK_SET );
Djordje Turjacanin je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Djordje Turjacanin na korisnoj poruci:
mica1709 (24.6.2015)
Stara 24.6.2015, 13:48   #167
mica1709
Banned
 
Član od: 2.5.2011.
Lokacija: Bujanovac
Poruke: 156
Zahvalnice: 205
Zahvaljeno jedanput na jednoj poruci
Određen forumom Re: C programiranje

Citat:
Djordje Turjacanin kaže: Pregled poruke
Nisi se pozicionirao na početak fajla. Prije while petlje, odnosno nakon otvaranja moraš premotati na početak.
Kod:
fseek (f, 0 , SEEK_SET );
Probao sam ovako ali nema nikakvih promena, ponovo mi ispisuje jedinicu umesto 5.

Kod:
#include<stdio.h>

#define MAX_IME 15
#define MAX_PREZIME 15
#define MAX_STUDENATA 80

typedef struct studenti
{
    char ime[MAX_IME];
    char prezime[MAX_PREZIME];
    char tacka;
    int brojindeksa, ocena, rednibroj;
} Studenti;

Studenti student[MAX_STUDENATA];

int broj_studenata = 0;

int ucitaj_studenta(FILE *f, Studenti *s)
{
    char tacka;
    if(fscanf(f, "%d%c%s%s%d%d", &(s->rednibroj), &(s->tacka), s->ime, s->prezime, &(s->brojindeksa), &(s->ocena)) == 6)
        return 1;
    else
        return 0;
}

int main(int argc, char* argv[])
{
    Studenti student;
    FILE* f;
    char ime[MAX_IME];
    char prezime[MAX_PREZIME];
    float prosecna = 0;
    int broj_studenata = 0;
    int brojindeksa;
    int izbor;
    int ocena;
    do
    {
        printf("************************************ MENI **************************************\n");
        printf("1. Prikaz celog izvestaja\n");        
        printf("2. Upis novog studenta\n");
        printf("3. Izmena podataka o studentima\n");
        printf("4. Izlaz iz programa\n\n");
        printf("********************************************************************************\n");
        printf("Unesite izbor:");
        scanf("%d",&izbor);
        switch(izbor)
        {
            case 1:
                f = fopen("C:\\fajl.txt", "r");
                while (ucitaj_studenta(f, &student))
                {
                    printf("%d %c %s %s %d %d \n", student.rednibroj, student.tacka, student.ime, student.prezime, student.brojindeksa, student.ocena);
                }
                fclose(f);
                break;
            case 2:
                broj_studenata = 0;
                f = fopen("C:\\fajl.txt", "a");
                fseek (f, 0 , SEEK_SET );
                while (ucitaj_studenta(f, &student))
                {
                    broj_studenata++;
                }
                student.tacka = '.';
                student.rednibroj = broj_studenata+1;
                printf("Unesite ime studenta: \n");
                scanf("%s", &ime);
                printf("Unesite prezime studenta: \n");
                scanf("%s", &prezime);
                printf("Unesite broj indeksa: \n");
                scanf("%d", &brojindeksa);
                printf("Unesite ocenu studenta: \n");
                scanf("%d", &ocena);
                fprintf(f,"\n%d%c %s %s %d %d", student.rednibroj, student.tacka, ime, prezime, brojindeksa, ocena);
                fclose(f);
                printf("Fajl je uspesno sacuvan....\n");
                break;
            case 3:

            case 4:
                printf("\nHvala Vam .. Program se zatvara.......\n\n");
                break;
            default:
                printf("\nNepravilan izbor.....\n");
        }
    }
    while(izbor != 4);
    return 0;
}
mica1709 je offline   Odgovor sa citatom ove poruke
Stara 24.6.2015, 16:04   #168
Futuristic
Član
 
Član od: 22.11.2009.
Lokacija: Čačak
Poruke: 251
Zahvalnice: 63
Zahvaljeno 11 puta na 10 poruka
Određen forumom Re: C programiranje

Kada si otvorio fajl za upisivanje, stavio si mu mod "a" koji podrazumeva samo pisanje u fajl. Stoga, kada posle otvaranja pokušavaš da čitaš, to se ispostavlja kao nemoguće i while ti se završava u prvom prolazu, tako da prom. broj_studenata ostaje na nuli.

Rešenje ti je da otvoriš fajl u modu za pisanje i čitanje, dakle "a+" na primer.
Takođe, skloni \n pri upisu u fajl, dodaje ti jednu praznu liniju koja je nepotrebna, pošto se file pointer već pozicionirao na kraj fajla; skloni & kada učitavaš u char[], pošto se pri prosleđivanju funkciji na taj način dešava "array to pointer decay", funkcija će primiti char* .

Grešci si mogao ući u trag relativno lako. Naime, postavio si broj_studenata na 0, po završetku while-a taj broj je ostao na 0 → while se nije izvršio niti jednom, što će reći f-ja ucitaj_studenta je vratila 0 pri prvom pokušaju čitanja, tj fscanf je vratio <6, u ovom slučaju -1(switch case 2 slučaj), dok u switch-ovom case 1 tog problema nema.
Futuristic je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Futuristic na korisnoj poruci:
mica1709 (24.6.2015)
Stara 24.6.2015, 19:39   #169
Djordje Turjacanin
Deo inventara foruma
 
Član od: 15.6.2008.
Lokacija: Prnjavor, RS
Poruke: 3.872
Zahvalnice: 491
Zahvaljeno 1.031 puta na 664 poruka
Slanje poruke preko MSN-a korisniku Djordje Turjacanin Slanje poruke preko Skypea korisniku Djordje Turjacanin
Određen forumom Re: C programiranje

Ja sam koristio "r+", i radio je bez problema na nekom zadatku koji sam radio.
Djordje Turjacanin je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Djordje Turjacanin na korisnoj poruci:
mica1709 (24.6.2015)
Stara 24.6.2015, 19:44   #170
voodoo_
V.I.P. GNU/Linux
 
Avatar korisnika voodoo_
 
Član od: 1.11.2005.
Poruke: 11.163
Zahvalnice: 2.082
Zahvaljeno 4.922 puta na 2.858 poruka
Određen forumom Re: C programiranje

http://linux.die.net/man/3/fopen
voodoo_ je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku voodoo_ na korisnoj poruci:
mica1709 (24.6.2015)
Stara 24.6.2015, 22:12   #171
mica1709
Banned
 
Član od: 2.5.2011.
Lokacija: Bujanovac
Poruke: 156
Zahvalnice: 205
Zahvaljeno jedanput na jednoj poruci
Određen forumom Re: C programiranje

Citat:
Futuristic kaže: Pregled poruke
Kada si otvorio fajl za upisivanje, stavio si mu mod "a" koji podrazumeva samo pisanje u fajl. Stoga, kada posle otvaranja pokušavaš da čitaš, to se ispostavlja kao nemoguće i while ti se završava u prvom prolazu, tako da prom. broj_studenata ostaje na nuli.

Rešenje ti je da otvoriš fajl u modu za pisanje i čitanje, dakle "a+" na primer.
Takođe, skloni \n pri upisu u fajl, dodaje ti jednu praznu liniju koja je nepotrebna, pošto se file pointer već pozicionirao na kraj fajla; skloni & kada učitavaš u char[], pošto se pri prosleđivanju funkciji na taj način dešava "array to pointer decay", funkcija će primiti char* .

Grešci si mogao ući u trag relativno lako. Naime, postavio si broj_studenata na 0, po završetku while-a taj broj je ostao na 0 → while se nije izvršio niti jednom, što će reći f-ja ucitaj_studenta je vratila 0 pri prvom pokušaju čitanja, tj fscanf je vratio <6, u ovom slučaju -1(switch case 2 slučaj), dok u switch-ovom case 1 tog problema nema.
Promenio sam mod na a+ kao što si rekao i sada je sve u redu što se tiče upisivanja novog studenta. Ostalo mi je još da rešim stavku pod 3 (Izmena podataka o studentima). Uopšte nemam ideju kako to da uradim pa bih zamolio tebe ili nekog drugog ko zna kako da ovo rešim da mi pomogne. Nisam baš dobro razumeo onaj deo u tvojoj poruci oko sklanjanja & prilikom učitavanja u char[]. Možeš li da mi kažeš tačno odakle da uklonim &.

Kod:
#include<stdio.h>

#define MAX_IME 15
#define MAX_PREZIME 15
#define MAX_STUDENATA 80

typedef struct studenti
{
    char ime[MAX_IME];
    char prezime[MAX_PREZIME];
    char tacka;
    int brojindeksa, ocena, rednibroj;
} Studenti;

Studenti student[MAX_STUDENATA];

int broj_studenata = 0;

int ucitaj_studenta(FILE *f, Studenti *s)
{
    char tacka;
    if(fscanf(f, "%d%c%s%s%d%d", &(s->rednibroj), &(s->tacka), s->ime, s->prezime, &(s->brojindeksa), &(s->ocena)) == 6)
        return 1;
    else
        return 0;
}

int main(int argc, char* argv[])
{
    Studenti student;
    FILE* f;
    char ime[MAX_IME];
    char prezime[MAX_PREZIME];
    float prosecna = 0;
    int broj_studenata = 0;
    int brojindeksa;
    int izbor;
    int ocena;
    do
    {
        printf("************************************ MENI **************************************\n");
        printf("1. Prikaz celog izvestaja\n");
        printf("2. Upis novog studenta\n");
        printf("3. Izmena podataka o studentima\n");
        printf("4. Izlaz iz programa\n\n");
        printf("********************************************************************************\n");
        printf("Unesite izbor:");
        scanf("%d",&izbor);
        switch(izbor)
        {
            case 1:
                f = fopen("C:\\fajl.txt", "r");
                while (ucitaj_studenta(f, &student))
                {
                    printf("%d %c %s %s %d %d \n", student.rednibroj, student.tacka, student.ime, student.prezime, student.brojindeksa, student.ocena);
                }
                fclose(f);
                break;
            case 2:
                broj_studenata = 0;
                f = fopen("C:\\fajl.txt", "a+");
                while (ucitaj_studenta(f, &student))
                {
                    broj_studenata++;
                }
                student.tacka = '.';
                student.rednibroj = broj_studenata+1;
                printf("Unesite ime studenta: ");
                scanf("%s", &ime);
                printf("Unesite prezime studenta: ");
                scanf("%s", &prezime);
                printf("Unesite broj indeksa: ");
                scanf("%d", &brojindeksa);
                printf("Unesite ocenu studenta: ");
                scanf("%d", &ocena);
                fprintf(f,"\n%d%c %s %s %d %d", student.rednibroj, student.tacka, ime, prezime, brojindeksa, ocena);
                fclose(f);
                printf("Fajl je uspesno sacuvan....\n");
                break;
            case 3:

            case 4:
                printf("\nHvala Vam .. Program se zatvara.......\n\n");
                break;
            default:
                printf("\nNepravilan izbor.....\n");
        }
    }
    while(izbor != 4);
    return 0;
}
mica1709 je offline   Odgovor sa citatom ove poruke
Stara 28.6.2015, 23:49   #172
mica1709
Banned
 
Član od: 2.5.2011.
Lokacija: Bujanovac
Poruke: 156
Zahvalnice: 205
Zahvaljeno jedanput na jednoj poruci
Određen forumom Re: C programiranje

Pokušao sam da rešim stavku pod 3 (Izmena podataka o studentima) ali mi prikazuje neke greške. Pa bih zamolio nekog da mi pomogne.

Evo i koda:

Kod:
#include<stdio.h>
#include<stdlib.h>

#define MAX_IME 15
#define MAX_PREZIME 15
#define MAX_STUDENATA 80

typedef struct studenti
{
    char ime[MAX_IME];
    char prezime[MAX_PREZIME];
    char tacka;
    int brojindeksa, ocena, rednibroj;
} Studenti;

Studenti *student;

int broj_studenata = 0;

int ucitaj_studenta(FILE *f, Studenti *s)
{
    char tacka;
    if(fscanf(f, "%d%c%s%s%d%d", &(s->rednibroj), &(s->tacka), s->ime, s->prezime, &(s->brojindeksa), &(s->ocena)) == 6)
        return 1;
    else
        return 0;
}

int main(int argc, char* argv[])
{
    student = (Studenti *) malloc(sizeof(Studenti));
    if (student == NULL)
    {
        fprintf(stderr, "Alokacija memorije nije uspela!\n");
    }
    Studenti student;
    FILE *f;
    char ime[MAX_IME];
    char prezime[MAX_PREZIME];
    float prosecna = 0;
    int broj_studenata = 0, izbor_izmene = 0, brojindeksa, izbor, ocena;
    do
    {
        printf("************************************ MENI **************************************\n");
        printf("1. Prikaz celog izvestaja\n");
        printf("2. Upis novog studenta\n");
        printf("3. Izmena podataka o studentima\n");
        printf("4. Izlaz iz programa\n\n");
        printf("********************************************************************************\n");
        printf("Unesite izbor:");
        scanf("%d",&izbor);
        switch(izbor)
        {
            case 1:
                f = fopen("H:\\fajl.txt", "r");
                while (ucitaj_studenta(f, &student))
                {
                    printf("%d %c %s %s %d %d \n", student.rednibroj, student.tacka, student.ime, student.prezime, student.brojindeksa, student.ocena);
                }
                fclose(f);
                break;
            case 2:
                broj_studenata = 0;
                f = fopen("H:\\fajl.txt", "a+");
                while (ucitaj_studenta(f, &student))
                {
                    broj_studenata++;
                }
                student.tacka = '.';
                student.rednibroj = broj_studenata+1;
                printf("Unesite ime studenta: ");
                scanf("%s", &ime);
                printf("Unesite prezime studenta: ");
                scanf("%s", &prezime);
                printf("Unesite broj indeksa: ");
                scanf("%d", &brojindeksa);
                printf("Unesite ocenu studenta: ");
                scanf("%d", &ocena);
                fprintf(f,"\n%d%c %s %s %d %d", student.rednibroj, student.tacka, ime, prezime, brojindeksa, ocena);
                fclose(f);
                printf("Fajl je uspesno sacuvan....\n");
                break;
            case 3:
                izbor_izmene = 0;
                f = fopen("H:\\fajl.txt", "r+");
                while (ucitaj_studenta(f, &student))
                {
                    printf("Unesite redni broj studenta cije podatke zelite da promenite: \n");
                    scanf("%d",&izbor_izmene);

                    printf("Novo ime: \n");
                    scanf("%s",&student[izbor_izmene]->ime);
                    fprintf(f,"%s\n",student[izbor_izmene]->ime);

                    printf("Novo prezime: \n");
                    scanf("%s",&student[izbor_izmene]->prezime);
                    fprintf(f,"%s\n",student[izbor_izmene]->prezime);

                    printf("Novi broj indeksa: \n");
                    scanf("%d",&student[izbor_izmene]->brojindeksa);
                    fprintf(f,"%d\n",student[izbor_izmene]->brojindeksa);

                    printf("Nova ocena: \n");
                    scanf("%d",&student[izbor_izmene]->ocena);
                    fprintf(f,"%d\n",student[izbor_izmene]->ocena);
                }
            case 4:
                printf("\nHvala Vam .. Program se zatvara.......\n\n");
                break;
            default:
                printf("\nNepravilan izbor.....\n");
        }
    }
    while(izbor != 4);
    return 0;
}
mica1709 je offline   Odgovor sa citatom ove poruke
Stara 29.6.2015, 13:07   #173
voodoo_
V.I.P. GNU/Linux
 
Avatar korisnika voodoo_
 
Član od: 1.11.2005.
Poruke: 11.163
Zahvalnice: 2.082
Zahvaljeno 4.922 puta na 2.858 poruka
Određen forumom Re: C programiranje

"student" je jedan primerak strukture "Studenti" u memoriji, tako da "student[izbor_izmene]" nema smisla, to nije niz struktura prethodno popunjen primercima pročitanim iz fajla.

Preporučujem da razradiš neki programski tok pre kodiranja, pošto ovo ovako ne ide.
voodoo_ je offline   Odgovor sa citatom ove poruke
Stara 1.7.2015, 22:00   #174
Flash91
Veteran
 
Član od: 24.10.2007.
Lokacija: Beograd
Poruke: 694
Zahvalnice: 222
Zahvaljeno 215 puta na 121 poruka
Određen forumom Re: C programiranje

Za sve koji imaju problema sa C programiranjem, vrlo dobri materijali se nalaze na sajtu RTI katedre ETFa http://rti.etf.bg.ac.rs/rti/ir1p2/materijal.html
Flash91 je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku Flash91 na korisnoj poruci:
Nikola Stankovic (3.7.2015)
Stara 14.7.2015, 13:22   #175
mica1709
Banned
 
Član od: 2.5.2011.
Lokacija: Bujanovac
Poruke: 156
Zahvalnice: 205
Zahvaljeno jedanput na jednoj poruci
Određen forumom Re: C programiranje

Treba mi pomoć oko sledećeg zadatka u C programskom jeziku:
Napisati program kojim se čita datoteka: znak po znak; i odredjuje broj pojavljivanja malih slova u datoteci bez w, x, y.
Problem je što ne znam kako da eliminišem w, x i y da ih ne broji. Ovako kako sam napisao broji sva mala slova.

Kod:
#include <stdio.h>

int main ()
{
	FILE * f;
	char c;
	int malaslova = 0;

	f = fopen ("H:\\fajl.txt", "r");

	if (f == NULL) {
		printf("Greska prilikom otvaranja fajla!");
	}
	else
	{
		do {
			c = fgetc(f);
			if ((c >= 'a') && (c <= 'z')) {
				malaslova++;
			}
		} while (c != EOF);

		fclose (f);
		printf("Broj pojavljivanja malih slova u datoteci: %d \n", malaslova);
	}
	return 0;
}
mica1709 je offline   Odgovor sa citatom ove poruke
Stara 14.7.2015, 13:48   #176
voodoo_
V.I.P. GNU/Linux
 
Avatar korisnika voodoo_
 
Član od: 1.11.2005.
Poruke: 11.163
Zahvalnice: 2.082
Zahvaljeno 4.922 puta na 2.858 poruka
Određen forumom Re: C programiranje

'w', 'x' i 'y' su tri pretposlednja slova u abecedi, tako da proveravaj opseg od 'a' do 'v' i posebno proveravaj 'z'.

Kod:
if (
	((c >= 'a') && (c <= 'v'))
	||
	(c == 'z')
)
{
	malaslova++;
}
voodoo_ je offline   Odgovor sa citatom ove poruke
Sledeći korisnik se zahvaljuje korisniku voodoo_ na korisnoj poruci:
mica1709 (14.7.2015)
Stara 14.7.2015, 16:57   #177
mica1709
Banned
 
Član od: 2.5.2011.
Lokacija: Bujanovac
Poruke: 156
Zahvalnice: 205
Zahvaljeno jedanput na jednoj poruci
Određen forumom Re: C programiranje

Hvala.
mica1709 je offline   Odgovor sa citatom ove poruke
Odgovor

Bookmarks sajtovi

Alatke vezane za temu
Vrste prikaza

Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno


Slične teme
tema temu započeo forum Odgovora Poslednja poruka
Kako najlakše naučiti programiranje? Eris Programiranje 50 11.11.2010 18:10
Linux i C++ programiranje Andross Slobodni softver 13 4.1.2007 21:43
Symbian programiranje Optique Programiranje 1 16.6.2006 9:58
Programiranje u OpenGL Damjan Pravljenje igara 9 7.3.2006 2:05
Programiranje? Wo[R]MY Programiranje 1 3.3.2006 18:14


Sva vremena su po Griniču +2 h. Sada je 9:53.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2024, vBulletin Solutions, Inc.
Hosted by Beograd.com