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

Prog2 DZ
WWW:
Idite na Prethodno  1, 2, 3 ... 10, 11, 12, 13  Sljedeće
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
homoviator
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 31. 01. 2011. (18:42:32)
Postovi: (3A)16
Sarma = la pohva - posuda
= 6 - 5

PostPostano: 10:38 sub, 26. 5. 2012    Naslov: Citirajte i odgovorite

Za neparan broj s-ova ispisuje dobro, ali za paran ne... hvala puno...

[code:1]Pogledaj koje ime trebas ucitati, te koje ti ucitavas. [/code:1]
Ovaj je kod za forum i moj komp... mislim samo taj dio koda... u svakom slučaju hvala...
Za neparan broj s-ova ispisuje dobro, ali za paran ne... hvala puno...

Kod:
Pogledaj koje ime trebas ucitati, te koje ti ucitavas.

Ovaj je kod za forum i moj komp... mislim samo taj dio koda... u svakom slučaju hvala...


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (355F)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 10:54 sub, 26. 5. 2012    Naslov: Citirajte i odgovorite

Bilo bi korisno proci kroz starije postove na ovom topicu, jer radis istu gresku koju su i mnogi drugi napravili i bje im objasnjeno kako se to radi.
Bilo bi korisno proci kroz starije postove na ovom topicu, jer radis istu gresku koju su i mnogi drugi napravili i bje im objasnjeno kako se to radi.



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
ivanaaaa
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 24. 10. 2011. (19:36:26)
Postovi: (31)16
Sarma = la pohva - posuda
= 4 - 4

PostPostano: 17:54 sub, 26. 5. 2012    Naslov: Citirajte i odgovorite

zašto je meni na mail poslano da mi je zadaća u potpunosti riješena točno, a kad pogledam tamo na popisu studenata piše da mi je jedan zadatak krivi?? :shock:

EDIT: ma nema veze... :D
zašto je meni na mail poslano da mi je zadaća u potpunosti riješena točno, a kad pogledam tamo na popisu studenata piše da mi je jedan zadatak krivi?? Shocked

EDIT: ma nema veze... Very Happy


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


Pridružen/a: 30. 11. 2009. (15:39:50)
Postovi: (D7)16
Sarma = la pohva - posuda
= 10 - 8

PostPostano: 21:01 sub, 26. 5. 2012    Naslov: Citirajte i odgovorite

[code:1]int main(void)
{
FILE *in, *out;
char *s, s2[3];
int i = 0;

if ((in = fopen("kqanubh.in.txt","r")) == NULL)
exit(1);
if ((out = fopen("kqanubh.out.txt","w")) == NULL)
exit(1);

fscanf(in,"%[^\n]",s);
s2[0]=s[0];
for(i=1;s[i]!='\0';++i)
{
s2[1]=s[i];
if (strlen(s2)==2)
{
if (s2[0]=='d' && s2[1]=='g')
{
fprintf(out,"%s","oogkis");
s2[0]=s2[1];
}
else
{
s2[0]=s2[1];
fprintf(out,"%c",s[i-1]);
}
}
}
fprintf(out,"%s",s2);

fclose(in);
fclose(out);
return 0;
}[/code:1]

Radim grešku,a ne mogu skužit kako da ispravim. Može pomoć? :)
Kod:
int main(void)
{
    FILE *in, *out;
    char *s, s2[3];
    int i = 0;
   
    if ((in = fopen("kqanubh.in.txt","r")) == NULL)
       exit(1);
    if ((out = fopen("kqanubh.out.txt","w")) == NULL)
       exit(1);
       
    fscanf(in,"%[^\n]",s);
    s2[0]=s[0];
    for(i=1;s[i]!='\0';++i)
    {
          s2[1]=s[i];
          if (strlen(s2)==2)
          {
             if (s2[0]=='d' && s2[1]=='g')
             { 
                fprintf(out,"%s","oogkis");
                s2[0]=s2[1];
             }
             else
             {
              s2[0]=s2[1];
              fprintf(out,"%c",s[i-1]);
             }
          }       
    }
    fprintf(out,"%s",s2);       
   
    fclose(in);
    fclose(out);
 return 0;
}


Radim grešku,a ne mogu skužit kako da ispravim. Može pomoć? Smile


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


Pridružen/a: 11. 09. 2008. (10:54:06)
Postovi: (370)16
Sarma = la pohva - posuda
-29 = 108 - 137
Lokacija: Pula

PostPostano: 21:47 sub, 26. 5. 2012    Naslov: Citirajte i odgovorite

Ne znam koji je zadatak, ali za [tt]s[/tt] nije alocirana memorija.
Ne znam koji je zadatak, ali za s nije alocirana memorija.



_________________
Mario Berljafa
[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (355F)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 22:11 sub, 26. 5. 2012    Naslov: Citirajte i odgovorite

Ne valja ni resetiranje stringa [tt]s2[/tt] na prazan string, kao ni dodavanje novog znaka u [tt]s2[/tt] (jer on moze biti i prazan, a ne uvijek duljine tocno 1) i brisanje prvog znaka (ostane kopija starog drugog znaka sto ce dovesti do greske na kraju filea).
Ne valja ni resetiranje stringa s2 na prazan string, kao ni dodavanje novog znaka u s2 (jer on moze biti i prazan, a ne uvijek duljine tocno 1) i brisanje prvog znaka (ostane kopija starog drugog znaka sto ce dovesti do greske na kraju filea).



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
piccola
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 30. 11. 2009. (15:39:50)
Postovi: (D7)16
Sarma = la pohva - posuda
= 10 - 8

PostPostano: 1:26 ned, 27. 5. 2012    Naslov: Citirajte i odgovorite

joj, sad mi je jasnije...evo ispravljene su greške, nadam se samo da će zadaća bit prihvaćena :) puno hvala :D
joj, sad mi je jasnije...evo ispravljene su greške, nadam se samo da će zadaća bit prihvaćena Smile puno hvala Very Happy


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


Pridružen/a: 24. 09. 2011. (22:21:43)
Postovi: (76)16
Spol: muško
Sarma = la pohva - posuda
= 9 - 4

PostPostano: 9:41 uto, 29. 5. 2012    Naslov: Citirajte i odgovorite

molio bih pomoc oko zadatka: ucitati liniju s maksimalno 17928 znakova(samo slova i razmaci), treba izbrisati svaku trecu rijec a ostalima izokrenuti poredak slova.
[code:1]
#include <stdio.h>
#include <ctype.h>
#include <string.h>

void brisi(char s[],int n,int *br){
int i,l=0,pom=n;

while(s[pom] != ' ' && s[pom]){
++pom;
++l;
}
*br+=l;

for(i=n+l; s[i]; ++i)
s[i-l]=s[i];
return;
}

void preinaka1(char s[]){
int i,rijec=0,br=0,d=strlen(s);

for(i=0; s[i]; ){
if(isalpha(s[i])){
++rijec;
if(rijec % 3 == 0)
brisi(s,i,&br);
while(isalpha(s[i]))
++i;
}
while(isspace(s[i]))
++i;
}
s[d-br]='\0';
return;
}

void invertiraj(char s[],int d,int l){
int i,j;

for(i=d,j=l; i < j; ++i,--j){
char pom=s[i];
s[i]=s[j];
s[j]=pom;
}
return;
}

void preinaka2(char s[]){
int i,pom;

for(i=0; s[i]; ){
if(isalpha(s[i])){
pom=i;
while(isalpha(s[i]))
++i;
invertiraj(s,pom,i-1);
}
while(isspace(s[i]))
++i;
}
return;
}

int main(void){
char s[17929];

scanf("%[^\n]",s);
preinaka1(s);
preinaka2(s);
printf("%s",s);
return 0;
}[/code:1]

[size=9][color=#999999]Added after 1 minutes:[/color][/size]

program ne radi kako bi trebao iako radi na mojim primjerima
molio bih pomoc oko zadatka: ucitati liniju s maksimalno 17928 znakova(samo slova i razmaci), treba izbrisati svaku trecu rijec a ostalima izokrenuti poredak slova.
Kod:

#include <stdio.h>
#include <ctype.h>
#include <string.h>

    void brisi(char s[],int n,int *br){
        int i,l=0,pom=n;

        while(s[pom] != ' ' && s[pom]){
            ++pom;
            ++l;
        }
        *br+=l;

        for(i=n+l; s[i]; ++i)
            s[i-l]=s[i];
        return;
    }

    void preinaka1(char s[]){
        int i,rijec=0,br=0,d=strlen(s);

        for(i=0; s[i]; ){
            if(isalpha(s[i])){
                ++rijec;
                if(rijec % 3 == 0)
                    brisi(s,i,&br);
                while(isalpha(s[i]))
                    ++i;
            }
            while(isspace(s[i]))
                ++i;
        }
        s[d-br]='\0';
        return;
    }

    void invertiraj(char s[],int d,int l){
        int i,j;

        for(i=d,j=l; i < j; ++i,--j){
            char pom=s[i];
                s[i]=s[j];
                s[j]=pom;
        }
        return;
    }

    void preinaka2(char s[]){
        int i,pom;

        for(i=0; s[i]; ){
            if(isalpha(s[i])){
                pom=i;
                while(isalpha(s[i]))
                    ++i;
                invertiraj(s,pom,i-1);
            }
            while(isspace(s[i]))
                ++i;
        }
        return;
    }

    int main(void){
        char s[17929];

        scanf("%[^\n]",s);
        preinaka1(s);
        preinaka2(s);
        printf("%s",s);
        return 0;
    }


Added after 1 minutes:

program ne radi kako bi trebao iako radi na mojim primjerima



_________________
it was merely a setback
[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (355F)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 11:29 uto, 29. 5. 2012    Naslov: Citirajte i odgovorite

Pazi! Ti stalno ides kroz string (i za brisanje i za samu analizu stringa), a null-character mu ispravno podesis tek na kraju posla. To nije dobro. Zazidaj ga na kraju svakog brisanja i trebalo bi biti ok.
Pazi! Ti stalno ides kroz string (i za brisanje i za samu analizu stringa), a null-character mu ispravno podesis tek na kraju posla. To nije dobro. Zazidaj ga na kraju svakog brisanja i trebalo bi biti ok.



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Shaman
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 24. 09. 2011. (22:21:43)
Postovi: (76)16
Spol: muško
Sarma = la pohva - posuda
= 9 - 4

PostPostano: 12:20 uto, 29. 5. 2012    Naslov: Citirajte i odgovorite

prihvatilo je hvala
prihvatilo je hvala



_________________
it was merely a setback
[Vrh]
Korisnički profil Pošaljite privatnu poruku
sasha.f
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 25. 10. 2011. (20:04:19)
Postovi: (3D)16
Sarma = la pohva - posuda
= 1 - 0

PostPostano: 11:55 sri, 30. 5. 2012    Naslov: Citirajte i odgovorite

na mojim primjerima radi i ne vidim grešku.. može netko pogledati?

Napišite program koji čita datoteku "cpcjcg.in", te ju prepisuje u datoteku "cpcjcg.out" tako da u prepisivanju sva pojavljivanja stringa "jk" zamijeni stringom "qvgcb".
Napomena: Nemojte uvoditi ograničenja na duljinu datoteke i/ili pojedinih linija i riječi u datoteci.

[code:1]#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *f, *g;
f=fopen("cpcjcg.in.txt", "rt");
if(f==NULL)
{
printf("Ne mogu..");
exit(0);
}
g=fopen("cpcjcg.out.txt", "wt");
if(g==NULL)
{
printf("Ne mogu..");
exit(0);
}

while(1)
{
char ch1, ch2;
if(fscanf(f, "%c", &ch1)!=1)
break;

if(ch1=='j')
{
fscanf(f, "%c", &ch2);
if(ch2=='k')
fprintf(g, "qvgcb");
else
{
fprintf(g, "%c", ch1);
fprintf(g, "%c", ch2);
}
}
else
{
fprintf(g, "%c", ch1);
}
}

fclose(f);
fclose(g);

return 0;
}
[/code:1]
na mojim primjerima radi i ne vidim grešku.. može netko pogledati?

Napišite program koji čita datoteku "cpcjcg.in", te ju prepisuje u datoteku "cpcjcg.out" tako da u prepisivanju sva pojavljivanja stringa "jk" zamijeni stringom "qvgcb".
Napomena: Nemojte uvoditi ograničenja na duljinu datoteke i/ili pojedinih linija i riječi u datoteci.

Kod:
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    FILE *f, *g;
    f=fopen("cpcjcg.in.txt", "rt");
    if(f==NULL)
    {
        printf("Ne mogu..");
        exit(0);
    }
    g=fopen("cpcjcg.out.txt", "wt");
    if(g==NULL)
    {
        printf("Ne mogu..");
        exit(0);
    }

    while(1)
    {
        char ch1, ch2;
        if(fscanf(f, "%c", &ch1)!=1)
        break;

        if(ch1=='j')
        {
            fscanf(f, "%c", &ch2);
            if(ch2=='k')
            fprintf(g, "qvgcb");
            else
            {
                fprintf(g, "%c", ch1);
                fprintf(g, "%c", ch2);
            }
        }
        else
        {
            fprintf(g, "%c", ch1);
        }
    }

    fclose(f);
    fclose(g);

    return 0;
}


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


Pridružen/a: 23. 06. 2010. (16:53:45)
Postovi: (3D)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
12 = 15 - 3

PostPostano: 12:35 sri, 30. 5. 2012    Naslov: Citirajte i odgovorite

Stavi kao input

[code:1]
jjk
[/code:1]

Meni taj text ne mjenja, tj. kao output dobivam

[code:1]
jjk
[/code:1]
Stavi kao input

Kod:

jjk


Meni taj text ne mjenja, tj. kao output dobivam

Kod:

jjk


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (355F)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 13:02 sri, 30. 5. 2012    Naslov: Citirajte i odgovorite

Procitati stare postove na ovom istom topicu, da se ne ponavljamo vise.
Procitati stare postove na ovom istom topicu, da se ne ponavljamo vise.



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
homoviator
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 31. 01. 2011. (18:42:32)
Postovi: (3A)16
Sarma = la pohva - posuda
= 6 - 5

PostPostano: 15:13 sri, 30. 5. 2012    Naslov: Citirajte i odgovorite

[code:1]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
FILE *f,*g;
char s2[6],*str,c,c1;
int i,max=-1,n=0,j,k,br=0,l=0;
strcpy (s2,"nqvsj");
if((f=fopen("ornmc.in.txt","rt"))==0)
exit(-1);
if((g=fopen("ornmc.out.txt","wt"))==0)
exit(-1);
while(1)
{
if((fscanf(f,"%c",&c1))!=1) break;
{
if(c1!=' ' && c1!='\t' && c1!='\n') n++;
else
{
if(n>max) max=n;
n=0;
}br++;
}
}
max=max+1;
rewind(f);
while(l<br)
{
i=0;
str=(char*)malloc(max*sizeof(char));
lin: fscanf(f,"%s",&str);
if(c!=' ' && c!='\t' && c!='\n')
{
str[i]=c;
i++;
l++;
goto lin;
}else {ungetc(c,f); i=i+1; str[i]=='\0';}
for(j=0;j<i;)
{
if(str[j]=='s' && str[j+1]=='w' && str[j+2]=='w' && j+1<i && j+2<i)
{
for(k=0;str[k]!='\0';k++)
fprintf(g,"%c",s2[k]);
j=j+3;
}
else {fprintf(g,"%c",str[j]); j++;}
}
lin1: fscanf(f,"%c",&c);
if(c==' ' || c=='\t' || c=='\n') {l++; fprintf(g,"%c",c); goto lin1;}
else ungetc(c,f);
free(str);

}
fclose(f);
fclose(g);
free(str);

return 0;

}
[/code:1]
[code:1]str=(char*)malloc(max*sizeof(char));[/code:1]

Ovaj zadatak inače ne radi,ali u jednom je trenutku čak i bio proradio i ispis je bio točan s tim da za ostatak alocirane memorije je ispisivao u binarnom zapisu... pa moje pitanje je postoji li kakav način da se ostatak neiskorištene memorije nekako poništi? Zadatak je ,inače , ako je u datoteci string "sww" zamijeniti ga stringom "nv.." ... unaprijed hvala....
da li bi moguć način bio npr.
[code:1]ostatak memorije=max-i;
for(k=0;k<ostatak memorije;k++) free(str[k]);[/code:1][/code]
Kod:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
    FILE *f,*g;
    char s2[6],*str,c,c1;
    int i,max=-1,n=0,j,k,br=0,l=0;
    strcpy (s2,"nqvsj");
    if((f=fopen("ornmc.in.txt","rt"))==0)
    exit(-1);
    if((g=fopen("ornmc.out.txt","wt"))==0)
    exit(-1);
    while(1)
    {
        if((fscanf(f,"%c",&c1))!=1) break;
        {
            if(c1!=' ' && c1!='\t' && c1!='\n')  n++;
            else
            {
                if(n>max) max=n;
                n=0;
            }br++;
        }
    }
    max=max+1;
    rewind(f);
    while(l<br)
    {
        i=0;
        str=(char*)malloc(max*sizeof(char));
   lin: fscanf(f,"%s",&str);
        if(c!=' ' && c!='\t' && c!='\n')
        {
            str[i]=c;
            i++;
            l++;
            goto lin;
        }else {ungetc(c,f); i=i+1; str[i]=='\0';}
        for(j=0;j<i;)
        {
            if(str[j]=='s' && str[j+1]=='w' && str[j+2]=='w' && j+1<i && j+2<i)
            {
                for(k=0;str[k]!='\0';k++)
                fprintf(g,"%c",s2[k]);
                j=j+3;
            }
            else {fprintf(g,"%c",str[j]); j++;}
        }
  lin1: fscanf(f,"%c",&c);
        if(c==' ' || c=='\t' || c=='\n') {l++; fprintf(g,"%c",c); goto lin1;}
        else ungetc(c,f);
        free(str);

    }
    fclose(f);
    fclose(g);
    free(str);

    return 0;

}

Kod:
str=(char*)malloc(max*sizeof(char));


Ovaj zadatak inače ne radi,ali u jednom je trenutku čak i bio proradio i ispis je bio točan s tim da za ostatak alocirane memorije je ispisivao u binarnom zapisu... pa moje pitanje je postoji li kakav način da se ostatak neiskorištene memorije nekako poništi? Zadatak je ,inače , ako je u datoteci string "sww" zamijeniti ga stringom "nv.." ... unaprijed hvala....
da li bi moguć način bio npr.
Kod:
ostatak memorije=max-i;
for(k=0;k<ostatak memorije;k++) free(str[k]);
[/code]


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (355F)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 15:40 sri, 30. 5. 2012    Naslov: Citirajte i odgovorite

Najobicniji [tt]realloc[/tt] kojem zadas da je nova velicina manja od stare. :)

Ostatak posta bas i nisam shvatio, pa necu komentirati.
Najobicniji realloc kojem zadas da je nova velicina manja od stare. Smile

Ostatak posta bas i nisam shvatio, pa necu komentirati.



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
true.false
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 12. 10. 2011. (17:37:39)
Postovi: (28)16
Sarma = la pohva - posuda
= 9 - 0

PostPostano: 17:02 sri, 30. 5. 2012    Naslov: Citirajte i odgovorite

Moze pomoc za 5. zadatak iz zadace:??
kad unesem u "in" datoteku slijedece:
5
1.1.1.
2.2.2.
13.[b]6[/b].2011.
1.1.1.
6.6.666.
izidje mi slijedece u "out" datoteci:
2#1.1.1.
1#2.2.2.
1#6.6.666.
1#13.6.2011.
ali kad ubacim:
5
1.1.1.
2.2.2.
13.[b]1[/b].2011.
1.1.1.
6.6.666.
program mi nece da do kraja skompajlira.. :? znaci ralika u datumu "13.6.2010." i "13.1.2010." Hvala unaprijed! :)
Evo kod:
[code:1]
#include<stdio.h>
#include<stdlib.h>

typedef struct _datumi{
int dan;
int mjesec;
int godina;
int puta;

struct datumi *next;
}datumi;

int usporedi(datumi *a, datumi *b){
if(a->godina<b->godina)return 1;

if(a->mjesec<b->mjesec)return 1;

if(a->dan<b->dan)return 1;

return 0;
}

int main(void){
FILE *in, *out;
int n, k=0, i;
datumi *string, *p, *zadnji, *e, *temp, *u, *jos;

in = fopen("datoteke3.txt", "rt" );
out = fopen("datoteke3out.txt", "wt");

fscanf(in, "%d", &n);
for(i=0;i<n;i++){
string =(datumi*)malloc(sizeof(datumi));
string->puta=1;
fscanf(in, "%d.%d.%d.", &string->dan, &string->mjesec, &string->godina);
if(k==0){
p=string;
jos=p;
}
else{
jos->next=string;
jos=jos->next;
}
k=1;
}
jos->next=NULL;
zadnji=p;
rewind(in);

for(;p;p=p->next){
e=p;
while(1){
if(e->next==NULL)break;

u=e->next;

if((u->dan==p->dan) && (u->mjesec==p->mjesec) && (u->godina==p->godina)){
p->puta++;
temp=e->next;
e->next=temp->next;
}else{
e=e->next;
}
}
}
k=1;
p=zadnji;
while(1){
if(k==0)break;
k=0;
p=zadnji;
for(p=zadnji;p;p=p->next){
e=p;
while(1){
if(e->next==NULL)break;
u=e->next;
if(usporedi(u,p)==1){
temp=e->next;
e->next=temp->next;
temp->next=zadnji;
zadnji=temp;
k=1;
}else e=e->next;
}
}
}
for(;zadnji!=NULL;zadnji=zadnji->next){
fprintf(out, "%d#%d.%d.%d.\n",zadnji->puta, zadnji->dan, zadnji->mjesec, zadnji->godina);
}
fclose(in);
fclose(out);
return 0;
}
[/code:1]
Moze pomoc za 5. zadatak iz zadace:??
kad unesem u "in" datoteku slijedece:
5
1.1.1.
2.2.2.
13.6.2011.
1.1.1.
6.6.666.
izidje mi slijedece u "out" datoteci:
2#1.1.1.
1#2.2.2.
1#6.6.666.
1#13.6.2011.
ali kad ubacim:
5
1.1.1.
2.2.2.
13.1.2011.
1.1.1.
6.6.666.
program mi nece da do kraja skompajlira.. Confused znaci ralika u datumu "13.6.2010." i "13.1.2010." Hvala unaprijed! Smile
Evo kod:
Kod:

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

typedef struct _datumi{
    int dan;
    int mjesec;
    int godina;
    int puta;

    struct datumi *next;
}datumi;

int usporedi(datumi *a, datumi *b){
   if(a->godina<b->godina)return 1;

   if(a->mjesec<b->mjesec)return 1;

   if(a->dan<b->dan)return 1;

   return 0;
}

int main(void){
    FILE *in, *out;
    int n, k=0, i;
    datumi *string, *p, *zadnji, *e, *temp, *u, *jos;

    in = fopen("datoteke3.txt", "rt" );
    out = fopen("datoteke3out.txt", "wt");

    fscanf(in, "%d", &n);
    for(i=0;i<n;i++){
        string =(datumi*)malloc(sizeof(datumi));
        string->puta=1;
        fscanf(in, "%d.%d.%d.", &string->dan, &string->mjesec, &string->godina);
        if(k==0){
            p=string;
            jos=p;
        }
        else{
        jos->next=string;
        jos=jos->next;
        }
        k=1;
    }
    jos->next=NULL;
    zadnji=p;
    rewind(in);

    for(;p;p=p->next){
            e=p;
      while(1){
        if(e->next==NULL)break;

        u=e->next;

        if((u->dan==p->dan) && (u->mjesec==p->mjesec) && (u->godina==p->godina)){
            p->puta++;
            temp=e->next;
            e->next=temp->next;
        }else{
        e=e->next;
        }
    }
    }
    k=1;
    p=zadnji;
    while(1){
         if(k==0)break;
            k=0;
            p=zadnji;
    for(p=zadnji;p;p=p->next){
            e=p;
      while(1){
        if(e->next==NULL)break;
        u=e->next;
        if(usporedi(u,p)==1){
            temp=e->next;
            e->next=temp->next;
            temp->next=zadnji;
            zadnji=temp;
            k=1;
        }else e=e->next;
    }
    }
    }
    for(;zadnji!=NULL;zadnji=zadnji->next){
        fprintf(out, "%d#%d.%d.%d.\n",zadnji->puta, zadnji->dan, zadnji->mjesec, zadnji->godina);
    }
    fclose(in);
    fclose(out);
return 0;
}


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (355F)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 18:03 sri, 30. 5. 2012    Naslov: Citirajte i odgovorite

Compiler ne cita tvoju ulaznu datoteku, tako da se program ili compilira ili ne, neovisno o tome sto se nalazi u datoteci [tt]in[/tt].

Trenutno ne stignem proucavati kod. Napisi tocnije/preciznije sto se zbiva, je ovo "za jedan ulaz compilira, za drugi ne" jednostavno nema smisla, pa ce netko baciti oko (mozda i ja, kad uhvatim vremena). Npr. sto ti compiler javlja (errors, warnings,...)?

Usput, bilo bi pristojno da program oslobodi zauzetu memoriju...
Compiler ne cita tvoju ulaznu datoteku, tako da se program ili compilira ili ne, neovisno o tome sto se nalazi u datoteci in.

Trenutno ne stignem proucavati kod. Napisi tocnije/preciznije sto se zbiva, je ovo "za jedan ulaz compilira, za drugi ne" jednostavno nema smisla, pa ce netko baciti oko (mozda i ja, kad uhvatim vremena). Npr. sto ti compiler javlja (errors, warnings,...)?

Usput, bilo bi pristojno da program oslobodi zauzetu memoriju...



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
true.false
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 12. 10. 2011. (17:37:39)
Postovi: (28)16
Sarma = la pohva - posuda
= 9 - 0

PostPostano: 18:20 sri, 30. 5. 2012    Naslov: Citirajte i odgovorite

[quote="vsego"]Compiler ne cita tvoju ulaznu datoteku[/quote]
Nisam skuzio zasto ne cita ulaznu datoteku? :?

[quote="vsego"]Napisi tocnije/preciznije sto se zbiva... ...Npr. sto ti compiler javlja (errors, warnings,...)?[/quote]
Znaci kad se pojavi prozorcic, samo je crno i nista se ne ispise, kao kad imam beskonacnu petlju, pa ga moram gasiti sa misem..
Errora nema ali ima na vise mjesta tj. linija isti warning, pise "assignment from incompatible pointer type" :?
Hvala! :)
vsego (napisa):
Compiler ne cita tvoju ulaznu datoteku

Nisam skuzio zasto ne cita ulaznu datoteku? Confused

vsego (napisa):
Napisi tocnije/preciznije sto se zbiva... ...Npr. sto ti compiler javlja (errors, warnings,...)?

Znaci kad se pojavi prozorcic, samo je crno i nista se ne ispise, kao kad imam beskonacnu petlju, pa ga moram gasiti sa misem..
Errora nema ali ima na vise mjesta tj. linija isti warning, pise "assignment from incompatible pointer type" Confused
Hvala! Smile


[Vrh]
Korisnički profil Pošaljite privatnu poruku
vsego
Site Admin
Site Admin


Pridružen/a: 06. 10. 2002. (22:07:09)
Postovi: (355F)16
Spol: zombi
Sarma = la pohva - posuda
854 = 1068 - 214
Lokacija: /sbin/init

PostPostano: 22:20 sri, 30. 5. 2012    Naslov: Citirajte i odgovorite

Ti imas problema s pojmovima. Compiler je ono sto prevodi tvoj program prije izvrsavanja.

Iskreno, ne uspijevam analizirati program. Napisi ga jasnije, jer ovo je nocna mora za snaci se: "string" je varijabla koja sadrzi pointer na strukturu, "zadnji" je adresa prvog,... Ako ti je cilj necitljivost, svaka cast, no tako je tesko dobiti pomoc.

Usput, usporedba ti sigurno ne valja, jer ce ti vratiti 1 i kad je, na primjer, mjesec prvog manji od mjeseca drugog, cak i ako je godina prvog veca od godine drugog. Takodjer, [tt]struct datumi *next;[/tt] treba biti [tt]struct [color=red]_[/color]datumi *next;[/tt] (inace compiler javi hrpu warninga).

Ono gdje vjerujem da ti se raspada je sort. Raditi klasicne sortove na listama je naporno. Tu je puno lakse s merge sortom ili, jos bolje, odmah kod citanja raditi insertion sort (oboje radjeno na predavanjima).
Ti imas problema s pojmovima. Compiler je ono sto prevodi tvoj program prije izvrsavanja.

Iskreno, ne uspijevam analizirati program. Napisi ga jasnije, jer ovo je nocna mora za snaci se: "string" je varijabla koja sadrzi pointer na strukturu, "zadnji" je adresa prvog,... Ako ti je cilj necitljivost, svaka cast, no tako je tesko dobiti pomoc.

Usput, usporedba ti sigurno ne valja, jer ce ti vratiti 1 i kad je, na primjer, mjesec prvog manji od mjeseca drugog, cak i ako je godina prvog veca od godine drugog. Takodjer, struct datumi *next; treba biti struct _datumi *next; (inace compiler javi hrpu warninga).

Ono gdje vjerujem da ti se raspada je sort. Raditi klasicne sortove na listama je naporno. Tu je puno lakse s merge sortom ili, jos bolje, odmah kod citanja raditi insertion sort (oboje radjeno na predavanjima).



_________________
U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
Drzim prodike
[Vrh]
Korisnički profil Pošaljite privatnu poruku
true.false
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 12. 10. 2011. (17:37:39)
Postovi: (28)16
Sarma = la pohva - posuda
= 9 - 0

PostPostano: 10:03 čet, 31. 5. 2012    Naslov: Citirajte i odgovorite

[quote="vsego"]Ako ti je cilj necitljivost, svaka cast, no tako je tesko dobiti pomoc.[/quote]
Oprostite zbog necitljivosti :oops: , kad sam radio program nisam mislio da ce to netko morati citati, ali kasnije kad vise nisam mogao pronaci gresku nisam razmisljao vise o nazivima varijabli, pa sam samo onako postao kako sam napisao.. crticu ispred "datumi" sam ne znam zasto nisam stavio i kako je uopce radilo to bez crtice.. :? sad mi ne javlja bar nijedan warning... :D

[quote="vsego"]
Ono gdje vjerujem da ti se raspada je sort. Raditi klasicne sortove na listama je naporno. Tu je puno lakse s merge sortom ili, jos bolje, odmah kod citanja raditi insertion sort (oboje radjeno na predavanjima).[/quote]

OK, ubacit su merge sort pa probam...

Hvala jos jednom na pomoci! :)
vsego (napisa):
Ako ti je cilj necitljivost, svaka cast, no tako je tesko dobiti pomoc.

Oprostite zbog necitljivosti Embarassed , kad sam radio program nisam mislio da ce to netko morati citati, ali kasnije kad vise nisam mogao pronaci gresku nisam razmisljao vise o nazivima varijabli, pa sam samo onako postao kako sam napisao.. crticu ispred "datumi" sam ne znam zasto nisam stavio i kako je uopce radilo to bez crtice.. Confused sad mi ne javlja bar nijedan warning... Very Happy

vsego (napisa):

Ono gdje vjerujem da ti se raspada je sort. Raditi klasicne sortove na listama je naporno. Tu je puno lakse s merge sortom ili, jos bolje, odmah kod citanja raditi insertion sort (oboje radjeno na predavanjima).


OK, ubacit su merge sort pa probam...

Hvala jos jednom na pomoci! Smile


[Vrh]
Korisnički profil Pošaljite privatnu poruku
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.
Idite na Prethodno  1, 2, 3 ... 10, 11, 12, 13  Sljedeće
Stranica 11 / 13.

 
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