Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
maaajčiii Forumaš(ica)
Pridružen/a: 05. 01. 2011. (12:11:11) Postovi: (2D)16
|
Postano: 8:30 sri, 25. 5. 2011 Naslov: |
|
|
čini mi se da program radi dobro, ali compiler kaže da je netočno, ako bi netko bio toliko ljubazan da pogleda. hvala unaprijed!
[code:1]#include <stdio.h>
#include <string.h>
int okreni(char *rijec, int duljina){
char tmp,i=0,j;
j=duljina;
duljina/=2;
while (duljina){
tmp = rijec[i];
rijec[i] = rijec[j-1];
rijec[j-1] = tmp;
duljina--;i++;j--;}
return 0;}
int main ()
{
char str[15603];
char * rijec;
int brojac=1;
scanf("%[^\n]", str);
rijec = strtok (str," ");
while (rijec != NULL)
{ if (brojac != 1 && brojac % 3 != 0) printf(" ");
if(brojac % 3 != 0){
okreni(rijec,strlen(rijec));
printf("%s",rijec);
}
rijec = strtok (NULL, " ");
brojac++;
}
return 0;
}[/code:1]
čini mi se da program radi dobro, ali compiler kaže da je netočno, ako bi netko bio toliko ljubazan da pogleda. hvala unaprijed!
Kod: | #include <stdio.h>
#include <string.h>
int okreni(char *rijec, int duljina){
char tmp,i=0,j;
j=duljina;
duljina/=2;
while (duljina){
tmp = rijec[i];
rijec[i] = rijec[j-1];
rijec[j-1] = tmp;
duljina--;i++;j--;}
return 0;}
int main ()
{
char str[15603];
char * rijec;
int brojac=1;
scanf("%[^\n]", str);
rijec = strtok (str," ");
while (rijec != NULL)
{ if (brojac != 1 && brojac % 3 != 0) printf(" ");
if(brojac % 3 != 0){
okreni(rijec,strlen(rijec));
printf("%s",rijec);
}
rijec = strtok (NULL, " ");
brojac++;
}
return 0;
} |
|
|
[Vrh] |
|
Sekanta Forumaš(ica)
Pridružen/a: 13. 09. 2009. (10:14:33) Postovi: (48)16
|
|
[Vrh] |
|
kkarlo Forumaš(ica)
Pridružen/a: 19. 05. 2010. (08:43:59) Postovi: (1B2)16
Spol:
|
Postano: 18:04 sri, 25. 5. 2011 Naslov: |
|
|
Zadatak:
Napišite program koji učitava jednu liniju teksta s najviše 15174 znakova. Tom tekstu treba izbrisati svaku 6. 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.
Moje rješenje:
[code:1]#include<stdio.h>
#include<string.h>
#include<ctype.h>
void brisisestu(char n[])
{
int i,br=0,d,j=0;
char t[15175];
d=strlen(n);
for(i=0;i<d;i++)
{
if(isalpha(n[i]))
{
br++;
if(br%6==0 && br>0)
{
while(isalpha(n[i]))i++;
while(!(isalpha(n[i])))i++;
}
else
while(isalpha(n[i]))
{
t[j]=n[i];
j++;
i++;
}
}
if(i<d)
{
t[j]=n[i];
j++;
}
}
t[j]='\0';
d=strlen(t);
for(i=0;i<=d;i++)
n[i]=t[i];
}
void obrniporedak(char n[],int pocetni, int zadnji)
{
int i,j=0,d=(pocetni+zadnji)/2;
char temp;
for(i=pocetni;i<=d;i++)
{
temp=n[i];
n[i]=n[zadnji-j];
n[zadnji-j]=temp;
j++;
}
}
int main()
{
char n[15175];
int i=0,d,j=0;
scanf("%[^\n]", n);
d=strlen(n);
for(i=0;i<d;i++)
{
if(isalpha(n[i]))
{
for(j=i+1;j<d;j++)
{
if(!(isalpha(n[j]))&&(isalpha(n[j-1])))
{
obrniporedak(n,i,j-1);
break;
}
if(j==d-1)
{
obrniporedak(n,i,j);
}
}
i=j;
}
}
brisisestu(n);
d=strlen(n);
for(i=0;i<d;i++)
printf("%c",n[i]);
return 0;
}[/code:1]
Ako zna netko gdje je greška, bio bih jako zahvalan da mi kaže...pokušao sam zbilja poslati 300 verzija ali nijednu ne prihvaća, a nije mi jasno zašto...ostadoh bez ideja :oops:
Znam, da bi trebao ic na konzultacije za to, ali stvarno sam u guzvi sa svim drugim obavezama na faksu... :roll:
Zadatak:
Napišite program koji učitava jednu liniju teksta s najviše 15174 znakova. Tom tekstu treba izbrisati svaku 6. 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.
Moje rješenje:
Kod: | #include<stdio.h>
#include<string.h>
#include<ctype.h>
void brisisestu(char n[])
{
int i,br=0,d,j=0;
char t[15175];
d=strlen(n);
for(i=0;i<d;i++)
{
if(isalpha(n[i]))
{
br++;
if(br%6==0 && br>0)
{
while(isalpha(n[i]))i++;
while(!(isalpha(n[i])))i++;
}
else
while(isalpha(n[i]))
{
t[j]=n[i];
j++;
i++;
}
}
if(i<d)
{
t[j]=n[i];
j++;
}
}
t[j]='\0';
d=strlen(t);
for(i=0;i<=d;i++)
n[i]=t[i];
}
void obrniporedak(char n[],int pocetni, int zadnji)
{
int i,j=0,d=(pocetni+zadnji)/2;
char temp;
for(i=pocetni;i<=d;i++)
{
temp=n[i];
n[i]=n[zadnji-j];
n[zadnji-j]=temp;
j++;
}
}
int main()
{
char n[15175];
int i=0,d,j=0;
scanf("%[^\n]", n);
d=strlen(n);
for(i=0;i<d;i++)
{
if(isalpha(n[i]))
{
for(j=i+1;j<d;j++)
{
if(!(isalpha(n[j]))&&(isalpha(n[j-1])))
{
obrniporedak(n,i,j-1);
break;
}
if(j==d-1)
{
obrniporedak(n,i,j);
}
}
i=j;
}
}
brisisestu(n);
d=strlen(n);
for(i=0;i<d;i++)
printf("%c",n[i]);
return 0;
} |
Ako zna netko gdje je greška, bio bih jako zahvalan da mi kaže...pokušao sam zbilja poslati 300 verzija ali nijednu ne prihvaća, a nije mi jasno zašto...ostadoh bez ideja
Znam, da bi trebao ic na konzultacije za to, ali stvarno sam u guzvi sa svim drugim obavezama na faksu...
|
|
[Vrh] |
|
akolak Forumaš(ica)
Pridružen/a: 27. 12. 2010. (16:52:59) Postovi: (1D)16
|
Postano: 19:00 sri, 25. 5. 2011 Naslov: |
|
|
[quote="kkarlo"]Zadatak:
Ako zna netko gdje je greška, bio bih jako zahvalan da mi kaže...pokušao sam zbilja poslati 300 verzija ali nijednu ne prihvaća, a nije mi jasno zašto...ostadoh bez ideja :oops:
Znam, da bi trebao ic na konzultacije za to, ali stvarno sam u guzvi sa svim drugim obavezama na faksu... :roll:[/quote]
Program pobriše previše razmaka kod riječi koja je pobrisana. (Trebaju bit pobrisana samo slova, ne i razmaci) Nadam se da je od pomoći.
kkarlo (napisa): | Zadatak:
Ako zna netko gdje je greška, bio bih jako zahvalan da mi kaže...pokušao sam zbilja poslati 300 verzija ali nijednu ne prihvaća, a nije mi jasno zašto...ostadoh bez ideja
Znam, da bi trebao ic na konzultacije za to, ali stvarno sam u guzvi sa svim drugim obavezama na faksu... |
Program pobriše previše razmaka kod riječi koja je pobrisana. (Trebaju bit pobrisana samo slova, ne i razmaci) Nadam se da je od pomoći.
|
|
[Vrh] |
|
kkarlo Forumaš(ica)
Pridružen/a: 19. 05. 2010. (08:43:59) Postovi: (1B2)16
Spol:
|
|
[Vrh] |
|
CROmpir Forumaš(ica)
Pridružen/a: 15. 09. 2009. (18:27:06) Postovi: (B3)16
|
|
[Vrh] |
|
kkarlo Forumaš(ica)
Pridružen/a: 19. 05. 2010. (08:43:59) Postovi: (1B2)16
Spol:
|
Postano: 19:58 čet, 26. 5. 2011 Naslov: |
|
|
[quote="CROmpir"]Mislim da ti u zadatku jasno pise da brise 6. rijec... A to nisu razmaci ;) vjeruj mi...[/quote]
I bili su razmaci...
Hvala!
E sad... pošto nitko ne postavlja pitanja oko datoteka...
morat ću ja... Program meni radi dobro, uredno sve ispiše, spremi kad otvorim sve je kak bi trebalo bit, a opet, ne prihvaća...
ZADATAK:
Zadana je datoteka "sjsjy.in" u kojoj se u prvoj liniji nalazi prirodni broj n, a u idućih n redaka zapisani su datumi u formatu
d.m.g.
(po jedan u svakom retku). Datume treba prepisati u datoteku "sjsjy.out" u formatu
koliko:d.m.g.
pri čemu je koliko broj pojavljivanja datuma u datoteci, a datumi trebaju biti sortirani od najstarijeg prema najnovijem.
Napomena: Datumi u ulaznoj datoteci bit će ispravni, tj. ne treba provjeravati da su korektni.
Uputa: Ovaj zadatak najlakše je riješiti upotrebom dinamički alociranog polja struct-ova.
[code:1]
#include<stdio.h>
#include<stdlib.h>
typedef struct
{
int dan,mjesec,godina,br;
}datum;
int main()
{
FILE *in,*out;
int n,i,j,br;
datum *novi,pomocni;
in=fopen("sjsjy.in","r");
out=fopen("sjsjy.out","w");
fscanf(in,"%d",&n);
novi=(datum *)malloc(n*sizeof(datum));
for(i=0;i<n;i++)
{
fscanf(in," %d.%d.%d.",&novi[i].dan,&novi[i].mjesec,&novi[i].godina);
novi[i].br=1;
}
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if((novi[i].godina*365+novi[i].dan+novi[i].mjesec*31) > (novi[j].godina*365+novi[j].dan+novi[j].mjesec*31))
{
pomocni=novi[i];
novi[i]=novi[j];
novi[j]=pomocni;
}
}
}
for(i=0;i<n;i++)
{
br=0;
for(j=i+1;j<n;j++)
{
if((novi[i].dan==novi[j].dan)&&(novi[i].godina==novi[j].godina)&&(novi[i].mjesec==novi[j].mjesec))
{
novi[i].br++;
novi[j].br=0;
br++;
}
}
i=i+br;
}
for(i=0;i<n;i++)
{
if((novi[i].br>0) && (i<(n-1)))
fprintf(out,"%d:%d.%d.%d.\n",novi[i].br,novi[i].dan,novi[i].mjesec,novi[i].godina);
else if((novi[i].br>0))
fprintf(out,"%d:%d.%d.%d.",novi[i].br,novi[i].dan,novi[i].mjesec,novi[i].godina);
}
free(novi);
fclose(in);
fclose(out);
return 0;
}
[/code:1]
Što sam sada previdio, ili krivo napravio?
CROmpir (napisa): | Mislim da ti u zadatku jasno pise da brise 6. rijec... A to nisu razmaci vjeruj mi... |
I bili su razmaci...
Hvala!
E sad... pošto nitko ne postavlja pitanja oko datoteka...
morat ću ja... Program meni radi dobro, uredno sve ispiše, spremi kad otvorim sve je kak bi trebalo bit, a opet, ne prihvaća...
ZADATAK:
Zadana je datoteka "sjsjy.in" u kojoj se u prvoj liniji nalazi prirodni broj n, a u idućih n redaka zapisani su datumi u formatu
d.m.g.
(po jedan u svakom retku). Datume treba prepisati u datoteku "sjsjy.out" u formatu
koliko:d.m.g.
pri čemu je koliko broj pojavljivanja datuma u datoteci, a datumi trebaju biti sortirani od najstarijeg prema najnovijem.
Napomena: Datumi u ulaznoj datoteci bit će ispravni, tj. ne treba provjeravati da su korektni.
Uputa: Ovaj zadatak najlakše je riješiti upotrebom dinamički alociranog polja struct-ova.
Kod: |
#include<stdio.h>
#include<stdlib.h>
typedef struct
{
int dan,mjesec,godina,br;
}datum;
int main()
{
FILE *in,*out;
int n,i,j,br;
datum *novi,pomocni;
in=fopen("sjsjy.in","r");
out=fopen("sjsjy.out","w");
fscanf(in,"%d",&n);
novi=(datum *)malloc(n*sizeof(datum));
for(i=0;i<n;i++)
{
fscanf(in," %d.%d.%d.",&novi[i].dan,&novi[i].mjesec,&novi[i].godina);
novi[i].br=1;
}
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
if((novi[i].godina*365+novi[i].dan+novi[i].mjesec*31) > (novi[j].godina*365+novi[j].dan+novi[j].mjesec*31))
{
pomocni=novi[i];
novi[i]=novi[j];
novi[j]=pomocni;
}
}
}
for(i=0;i<n;i++)
{
br=0;
for(j=i+1;j<n;j++)
{
if((novi[i].dan==novi[j].dan)&&(novi[i].godina==novi[j].godina)&&(novi[i].mjesec==novi[j].mjesec))
{
novi[i].br++;
novi[j].br=0;
br++;
}
}
i=i+br;
}
for(i=0;i<n;i++)
{
if((novi[i].br>0) && (i<(n-1)))
fprintf(out,"%d:%d.%d.%d.\n",novi[i].br,novi[i].dan,novi[i].mjesec,novi[i].godina);
else if((novi[i].br>0))
fprintf(out,"%d:%d.%d.%d.",novi[i].br,novi[i].dan,novi[i].mjesec,novi[i].godina);
}
free(novi);
fclose(in);
fclose(out);
return 0;
}
|
Što sam sada previdio, ili krivo napravio?
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 20:22 čet, 26. 5. 2011 Naslov: |
|
|
Meni se cini da ti sort ne valja:
2000*365+31*12+31 = 730403
2001*365+31*1+1 = 730397
:arrow: 1.1.2001. tebi dodje 6 dana [b]prije[/b] 31.12.2000.
To je zato jer tvoja godina traje dulje od 365 dana (sto za potrebe usporedbe nije problem, ali onda moras uzeti dulje trajanje godine, barem 12*31 = 372 dana; mozes i vise, ali ne manje).
Meni se cini da ti sort ne valja:
2000*365+31*12+31 = 730403
2001*365+31*1+1 = 730397
1.1.2001. tebi dodje 6 dana prije 31.12.2000.
To je zato jer tvoja godina traje dulje od 365 dana (sto za potrebe usporedbe nije problem, ali onda moras uzeti dulje trajanje godine, barem 12*31 = 372 dana; mozes i vise, ali ne manje).
_________________ 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.
|
|
[Vrh] |
|
Sekanta Forumaš(ica)
Pridružen/a: 13. 09. 2009. (10:14:33) Postovi: (48)16
|
Postano: 8:54 uto, 31. 5. 2011 Naslov: |
|
|
mene bi zanimalo zasto ovaj code "prividno" radi??
[code:1]#include<stdio.h>
#include<stdlib.h>
/*
Zadatak 3:
Zadana je datoteka "wtewkrre.in" u kojoj se u prvoj liniji nalazi prirodni broj n,
a u idućih n redaka zapisani su datumi u formatu d.m.g.(po jedan u svakom retku).
Datume treba prepisati u datoteku "wtewkrre.out" u formatu koliko|d.m.g.
pri čemu je koliko broj pojavljivanja datuma u datoteci, a datumi trebaju biti
sortirani od najstarijeg prema najnovijem.
Napomena: Datumi u ulaznoj datoteci bit će ispravni, tj. ne treba provjeravati da
su korektni. Uputa: Ovaj zadatak najlakše je riješiti upotrebom dinamički
alociranog polja struct-ova.
*/
typedef struct{
int dan,mjesec,godina,koliko;
}datum;
void sort(FILE *in, FILE *out){
int n,koliko=1,i,j,k, m;
datum *d;
char c;
fscanf(in,"%d",&n);
d=(datum*)malloc(n*sizeof(datum));
for(i=0;i<n;++i){
fscanf(in, "%d %c %d %c %d %c",&d[i].dan, &c, &d[i].mjesec, &c, &d[i].godina, &c);
d[i].koliko=1;
}
for(i=0;i<n-1;++i){
koliko=1;
for(j=i+1;j<n;++j)
{
if(d[i].godina>d[j].godina){
datum temp;
temp=d[i];
d[i]=d[j];
d[j]=temp;
}
if(d[i].godina==d[j].godina && d[i].mjesec>d[j].mjesec)
{
datum temp;
temp=d[i];
d[i]=d[j];
d[j]=temp;
}
if(d[i].godina==d[j].godina && d[i].mjesec==d[j].mjesec && d[i].dan>d[j].dan)
{
datum temp;
temp=d[i];
d[i]=d[j];
d[j]=temp;
}
if(d[i].godina==d[j].godina && d[i].mjesec==d[j].mjesec && d[i].dan==d[j].dan)
{
d[i].koliko=++koliko;
d[j]=d[n-1];
--n;
j--;
}
}
fprintf(out,"%d|%d.%d.%d.\n",d[i].koliko,d[i].dan,d[i].mjesec,d[i].godina);
}
fprintf(out,"%d|%d.%d.%d.\n",d[i].koliko,d[i].dan,d[i].mjesec,d[i].godina);
}
int main(){
FILE *in,*out;
in=fopen("fsqjesgain.txt","rt");
out=fopen("fsqjesgaout.txt","wt");
sort(in,out);
fclose(in);
fclose(out);
system("pause");
return 0;
}
[/code:1]
i jel se char moze pretvorit u int??
mene bi zanimalo zasto ovaj code "prividno" radi??
Kod: | #include<stdio.h>
#include<stdlib.h>
/*
Zadatak 3:
Zadana je datoteka "wtewkrre.in" u kojoj se u prvoj liniji nalazi prirodni broj n,
a u idućih n redaka zapisani su datumi u formatu d.m.g.(po jedan u svakom retku).
Datume treba prepisati u datoteku "wtewkrre.out" u formatu koliko|d.m.g.
pri čemu je koliko broj pojavljivanja datuma u datoteci, a datumi trebaju biti
sortirani od najstarijeg prema najnovijem.
Napomena: Datumi u ulaznoj datoteci bit će ispravni, tj. ne treba provjeravati da
su korektni. Uputa: Ovaj zadatak najlakše je riješiti upotrebom dinamički
alociranog polja struct-ova.
*/
typedef struct{
int dan,mjesec,godina,koliko;
}datum;
void sort(FILE *in, FILE *out){
int n,koliko=1,i,j,k, m;
datum *d;
char c;
fscanf(in,"%d",&n);
d=(datum*)malloc(n*sizeof(datum));
for(i=0;i<n;++i){
fscanf(in, "%d %c %d %c %d %c",&d[i].dan, &c, &d[i].mjesec, &c, &d[i].godina, &c);
d[i].koliko=1;
}
for(i=0;i<n-1;++i){
koliko=1;
for(j=i+1;j<n;++j)
{
if(d[i].godina>d[j].godina){
datum temp;
temp=d[i];
d[i]=d[j];
d[j]=temp;
}
if(d[i].godina==d[j].godina && d[i].mjesec>d[j].mjesec)
{
datum temp;
temp=d[i];
d[i]=d[j];
d[j]=temp;
}
if(d[i].godina==d[j].godina && d[i].mjesec==d[j].mjesec && d[i].dan>d[j].dan)
{
datum temp;
temp=d[i];
d[i]=d[j];
d[j]=temp;
}
if(d[i].godina==d[j].godina && d[i].mjesec==d[j].mjesec && d[i].dan==d[j].dan)
{
d[i].koliko=++koliko;
d[j]=d[n-1];
--n;
j--;
}
}
fprintf(out,"%d|%d.%d.%d.\n",d[i].koliko,d[i].dan,d[i].mjesec,d[i].godina);
}
fprintf(out,"%d|%d.%d.%d.\n",d[i].koliko,d[i].dan,d[i].mjesec,d[i].godina);
}
int main(){
FILE *in,*out;
in=fopen("fsqjesgain.txt","rt");
out=fopen("fsqjesgaout.txt","wt");
sort(in,out);
fclose(in);
fclose(out);
system("pause");
return 0;
}
|
i jel se char moze pretvorit u int??
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 9:27 uto, 31. 5. 2011 Naslov: |
|
|
Kao prvo, datoteke ti se pogresno zovu.
Drugo, za input
[code:1]6
2.1.2001.
2.1.2001.
2.1.2001.
1.1.2001.
2.1.2001.
2.1.2001.[/code:1]
dobijam ocito krivi rezultat
[code:1]1|1.1.2001.
2|2.1.2001.
1|2.1.2001.[/code:1]
Prodji kroz svoj kod s mojim primjerom, pa vidi zasto se to dogadja.
[quote="Sekanta"]i jel se char moze pretvorit u int??[/quote]
Gradivo prvog semestra (pretezno predavanja) kaze da moze. Pitanje je samo kakvu konverziju zelis.
Kao prvo, datoteke ti se pogresno zovu.
Drugo, za input
Kod: | 6
2.1.2001.
2.1.2001.
2.1.2001.
1.1.2001.
2.1.2001.
2.1.2001. |
dobijam ocito krivi rezultat
Kod: | 1|1.1.2001.
2|2.1.2001.
1|2.1.2001. |
Prodji kroz svoj kod s mojim primjerom, pa vidi zasto se to dogadja.
Sekanta (napisa): | i jel se char moze pretvorit u int?? |
Gradivo prvog semestra (pretezno predavanja) kaze da moze. Pitanje je samo kakvu konverziju zelis.
_________________ 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.
|
|
[Vrh] |
|
Sekanta Forumaš(ica)
Pridružen/a: 13. 09. 2009. (10:14:33) Postovi: (48)16
|
|
[Vrh] |
|
Joker Forumaš(ica)
Pridružen/a: 19. 09. 2010. (10:19:16) Postovi: (8C)16
Spol:
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
pupi Forumaš(ica)
Pridružen/a: 20. 12. 2009. (11:03:15) Postovi: (92)16
Spol:
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 6:59 sri, 1. 6. 2011 Naslov: |
|
|
Prvi semestar, sesto predavanje: zarez ima najnizi prioritet i evaluira se slijeva na desno. Dakle, za sve prakticne primjene, isto je.
Prvi semestar, sesto predavanje: zarez ima najnizi prioritet i evaluira se slijeva na desno. Dakle, za sve prakticne primjene, isto je.
_________________ 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.
|
|
[Vrh] |
|
seba04 Forumaš(ica)
Pridružen/a: 27. 07. 2009. (22:53:35) Postovi: (6)16
Spol:
|
|
[Vrh] |
|
<gogo> Forumaš(ica)
Pridružen/a: 09. 09. 2010. (09:09:31) Postovi: (19)16
Spol:
|
|
[Vrh] |
|
vriskica92 Forumaš(ica)
Pridružen/a: 21. 01. 2011. (00:02:33) Postovi: (14)16
|
|
[Vrh] |
|
jabuka Forumaš(ica)
Pridružen/a: 21. 11. 2009. (15:53:14) Postovi: (7C)16
|
Postano: 15:43 sri, 1. 6. 2011 Naslov: |
|
|
radi se o 2.zadatku iz 5.zadace...meni radi sve normalno, al mi aplakacija za zadace kaze da je kriv:
Zadatak 2:
Napišite program koji čita datoteku "cjsqkyd.in", te ju prepisuje u datoteku "cjsqkyd.out" tako da u prepisivanju sva pojavljivanja stringa "hnd" zamijeni stringom "onnozlm".
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 *in,*out;
char c,c1,c2;
int t;
if((in=fopen("cjsqkyd.in","rt"))==NULL)
exit(1);
if((out=fopen("cjsqkyd.out","wt"))==NULL)
exit(2);
while(fscanf(in,"%c",&c)>0){
if(c!='h')
fprintf(out,"%c",c);
if(c=='h'){
if(fscanf(in,"%c",&c1)>0){
if(c1=='h'){
fprintf(out,"%c",c);
ungetc(c1,in);
continue;
}
if(c1=='n'){
if(fscanf(in,"%c",&c2)>0){
if(c2=='n'){
fprintf(out,"%c",c);
fprintf(out,"%c",c1);
ungetc(c2,in);
continue;
}
if(c2!='d'){
fprintf(out,"%c",c);
fprintf(out,"%c",c1);
fprintf(out,"%c",c2);
}
if(c2=='d')
fprintf(out,"%s","onnozlm");
}
else {
fprintf(out,"%c",c);
fprintf(out,"%c",c1);
}
}
}
else fprintf(out,"%c",c);
}
}
fclose(in); fclose(out);
system("pause");
return 0;
}
[/code:1]
radi se o 2.zadatku iz 5.zadace...meni radi sve normalno, al mi aplakacija za zadace kaze da je kriv:
Zadatak 2:
Napišite program koji čita datoteku "cjsqkyd.in", te ju prepisuje u datoteku "cjsqkyd.out" tako da u prepisivanju sva pojavljivanja stringa "hnd" zamijeni stringom "onnozlm".
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 *in,*out;
char c,c1,c2;
int t;
if((in=fopen("cjsqkyd.in","rt"))==NULL)
exit(1);
if((out=fopen("cjsqkyd.out","wt"))==NULL)
exit(2);
while(fscanf(in,"%c",&c)>0){
if(c!='h')
fprintf(out,"%c",c);
if(c=='h'){
if(fscanf(in,"%c",&c1)>0){
if(c1=='h'){
fprintf(out,"%c",c);
ungetc(c1,in);
continue;
}
if(c1=='n'){
if(fscanf(in,"%c",&c2)>0){
if(c2=='n'){
fprintf(out,"%c",c);
fprintf(out,"%c",c1);
ungetc(c2,in);
continue;
}
if(c2!='d'){
fprintf(out,"%c",c);
fprintf(out,"%c",c1);
fprintf(out,"%c",c2);
}
if(c2=='d')
fprintf(out,"%s","onnozlm");
}
else {
fprintf(out,"%c",c);
fprintf(out,"%c",c1);
}
}
}
else fprintf(out,"%c",c);
}
}
fclose(in); fclose(out);
system("pause");
return 0;
}
|
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
|