Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

Opet neznam di je greška :( (zadatak)
WWW:

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
perica
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 02. 03. 2016. (10:15:48)
Postovi: (5)16
Sarma = la pohva - posuda
= 0 - 0

PostPostano: 12:16 čet, 3. 3. 2016    Naslov: Opet neznam di je greška :( Citirajte i odgovorite

Ovaj put valjda nije tako glupa greška, ak se nekom slučajno (dugačak je i ružan program :P) da nać šta je krivo:

[code:1]
/*
* Napišite program koji učitava jednu liniju teksta s najviše
* 18455 znakova. Tom tekstu treba izbrisati svaku 3. riječ, a
* ostalima izokrenuti redoslijed slova (same riječi ostaju u
* originalnom poretku). Tako dobiveni tekst treba ispisati.
* Možete pretpostaviti da tekst sadrži samo slova i razmake.
*
*/

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

enum {
sz = 18456
};
int end;

void dumpword(void) {
for (;;) {
int c = getchar();
if (c==' ') {
return;
} else if (c=='\n') {
end = 1;
return;
}
}
}

int get(int word[]) {
int lc = 0;
for (;;) {
int c = getchar();
if (c==' ') {
return lc;
} else if (c=='\n') {
end = 1;
return lc;
} else {
word[lc] = c;
lc++;
}
}
}

void pr(int word[], int lc) {
for (lc--; 0<=lc; lc--) {
putchar(word[lc]);
}
putchar(' ');
}

void exithandle(void) {
if (end) {
putchar('\n');
exit(0);
}
}

void f(void) {
int word[sz];
// Word count. Used for dumping every third word.
int wc = 0;

for (;;) {
if (wc%3 == 2) {
dumpword();
exithandle();
wc++;
continue;
}

// Letter count.
int lc = get(word);
wc++;

pr(word, lc);
exithandle();
}
}

int main(void) {
f();
return 0;
}
[/code:1][/code]
Ovaj put valjda nije tako glupa greška, ak se nekom slučajno (dugačak je i ružan program :P) da nać šta je krivo:

Kod:

/*
 * Napišite program koji učitava jednu liniju teksta s najviše
 * 18455 znakova. Tom tekstu treba izbrisati svaku 3. riječ, a
 * ostalima izokrenuti redoslijed slova (same riječi ostaju u
 * originalnom poretku). Tako dobiveni tekst treba ispisati.
 * Možete pretpostaviti da tekst sadrži samo slova i razmake.
 *
 */

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

enum {
        sz = 18456
};
int end;

void dumpword(void) {
        for (;;) {
                int c = getchar();
                if (c==' ') {
                        return;
                } else if (c=='\n') {
                        end = 1;
                        return;
                }
        }
}

int get(int word[]) {
        int lc = 0;
        for (;;) {
                int c = getchar();
                if (c==' ') {
                        return lc;
                } else if (c=='\n') {
                        end = 1;
                        return lc;
                } else {
                        word[lc] = c;
                        lc++;
                }
        }
}

void pr(int word[], int lc) {
        for (lc--; 0<=lc; lc--) {
                putchar(word[lc]);
        }
        putchar(' ');
}

void exithandle(void) {
        if (end) {
                putchar('\n');
                exit(0);
        }
}

void f(void) {
        int word[sz];
        // Word count. Used for dumping every third word.
        int wc = 0;

        for (;;) {
                if (wc%3 == 2) {
                        dumpword();
                        exithandle();
                        wc++;
                        continue;
                }

                // Letter count.
                int lc = get(word);
                wc++;

                pr(word, lc);
                exithandle();
        }
}

int main(void) {
        f();
        return 0;
}
[/code]


[Vrh]
Korisnički profil Pošaljite privatnu poruku
mdoko
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 11. 2002. (22:17:12)
Postovi: (71A)16
Spol: muško
Sarma = la pohva - posuda
199 = 237 - 38
Lokacija: Heriot-Watt University, Edinburgh

PostPostano: 13:03 čet, 3. 3. 2016    Naslov: Citirajte i odgovorite

Zezneš se ako među riječima postoji više od jednog razmaka. Evo dva primjera ulaza i izlaza koji daje tvoj program:

Input: [tt]one␣two␣three␣four␣five␣six␣seven␣eight␣nine␣ten[/tt]
Output: [tt]eno␣owt␣ruof␣evif␣neves␣thgie␣net[/tt] (ok)

Input: [tt]one␣two␣␣three␣four␣five␣six␣seven␣eight␣nine␣ten[/tt]
Output: [tt]eno␣owt␣eerht␣ruof␣xis␣neves␣enin␣net[/tt] (greška)

Primijeti kako u drugom primjeru postoje dva razmaka između [tt]two[/tt] i [tt]three[/tt].
Zezneš se ako među riječima postoji više od jednog razmaka. Evo dva primjera ulaza i izlaza koji daje tvoj program:

Input: one␣two␣three␣four␣five␣six␣seven␣eight␣nine␣ten
Output: eno␣owt␣ruof␣evif␣neves␣thgie␣net (ok)

Input: one␣two␣␣three␣four␣five␣six␣seven␣eight␣nine␣ten
Output: eno␣owt␣eerht␣ruof␣xis␣neves␣enin␣net (greška)

Primijeti kako u drugom primjeru postoje dva razmaka između two i three.



_________________
Extraordinary claims require extraordinary evidence. – Carl Sagan
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2 Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Ne možete otvarati nove teme.
Ne možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan