Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
CROmpir Forumaš(ica)
Pridružen/a: 15. 09. 2009. (18:27:06) Postovi: (B3)16
|
Postano: 15:46 sri, 13. 4. 2011 Naslov: |
|
|
Moze li mi netko pomoci oko ovog zadatka, na kompu mi radi sve oke, no aplikacija za zadace ne prihvaca program...
Napišite program koji učitava jednu liniju teksta s najviše 15115 znakova. Tom tekstu treba izbrisati svaku 5. 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.
[code:1]
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void brisi ( char a[], int kraj1, char c[], int pocetak, int kraj ){
int i;
for (i=pocetak; i<=kraj; i++) {
a[kraj1++]=c[i];
}
}
void invert ( char *a, int pocetak, int kraj ){
int t, i;
char temp;
t=kraj;
for (i=pocetak; i<(pocetak+(kraj+1))/2; i++){
temp=a[i];
a[i]=a[t];
a[t]=temp;
t--;
}
}
void funkcija ( char a[] ){
int i=0, broj=0, razmak=1, z, brSlova=0, j=0;
while (a[i]){
if (a[i]==' ' || a[i]=='\t') razmak=1;
if (razmak==1 && isalpha(a[i])!=0){
broj++;
for (z=i; isalpha(a[z])!=0; z++) brSlova++;
invert(a,i,i+(brSlova-1));
if ((broj)%5==0){
brisi(a,i, a, i+brSlova, strlen(a));
}
razmak=0;
brSlova=0;
}
i++;
}
}
int main(){
char a[15116];
scanf("%[^\n]", a);
funkcija(a);
printf("%s", a);
return 0;
}
[/code:1]
Moze li mi netko pomoci oko ovog zadatka, na kompu mi radi sve oke, no aplikacija za zadace ne prihvaca program...
Napišite program koji učitava jednu liniju teksta s najviše 15115 znakova. Tom tekstu treba izbrisati svaku 5. 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.
Kod: |
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void brisi ( char a[], int kraj1, char c[], int pocetak, int kraj ){
int i;
for (i=pocetak; i<=kraj; i++) {
a[kraj1++]=c[i];
}
}
void invert ( char *a, int pocetak, int kraj ){
int t, i;
char temp;
t=kraj;
for (i=pocetak; i<(pocetak+(kraj+1))/2; i++){
temp=a[i];
a[i]=a[t];
a[t]=temp;
t--;
}
}
void funkcija ( char a[] ){
int i=0, broj=0, razmak=1, z, brSlova=0, j=0;
while (a[i]){
if (a[i]==' ' || a[i]=='\t') razmak=1;
if (razmak==1 && isalpha(a[i])!=0){
broj++;
for (z=i; isalpha(a[z])!=0; z++) brSlova++;
invert(a,i,i+(brSlova-1));
if ((broj)%5==0){
brisi(a,i, a, i+brSlova, strlen(a));
}
razmak=0;
brSlova=0;
}
i++;
}
}
int main(){
char a[15116];
scanf("%[^\n]", a);
funkcija(a);
printf("%s", a);
return 0;
}
|
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (355F)16
Spol:
Lokacija: /sbin/init
|
Postano: 7:49 čet, 14. 4. 2011 Naslov: |
|
|
[quote="CROmpir"]Moze li mi netko pomoci oko ovog zadatka, na kompu mi radi sve oke, no aplikacija za zadace ne prihvaca program...[/quote]
Na mom kompu ne radi dobro. Npr. za
[code:1]prva druga treca cetvrta peta sesta sedma osma deveta deseta jedanaesta dvanaesta trinaesta cetrnaesta petnaesta sesnaesta sedamnaesta osamnaesta devetnaesta dvadeseta[/code:1]
mi vraca
[code:1]avrp agurd acert atrvtec sesta amdes amso ateved atesed dvanaesta atseanirt atseanrtec atseantep atseanses osamnaesta atseanteved atesedavd[/code:1]
sto znaci da je obrisao petu, jedanaestu i sedamnaestu rijec, a to nije bas "svaka peta", nego "svaka sesta pocevsi od pete".
CROmpir (napisa): | Moze li mi netko pomoci oko ovog zadatka, na kompu mi radi sve oke, no aplikacija za zadace ne prihvaca program... |
Na mom kompu ne radi dobro. Npr. za
Kod: | prva druga treca cetvrta peta sesta sedma osma deveta deseta jedanaesta dvanaesta trinaesta cetrnaesta petnaesta sesnaesta sedamnaesta osamnaesta devetnaesta dvadeseta |
mi vraca
Kod: | avrp agurd acert atrvtec sesta amdes amso ateved atesed dvanaesta atseanirt atseanrtec atseantep atseanses osamnaesta atseanteved atesedavd |
sto znaci da je obrisao petu, jedanaestu i sedamnaestu rijec, a to nije bas "svaka peta", nego "svaka sesta pocevsi od pete".
_________________ 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] |
|
kikzmyster Forumaš(ica)
Pridružen/a: 14. 10. 2010. (13:35:08) Postovi: (72)16
Spol:
|
Postano: 22:28 ned, 17. 4. 2011 Naslov: |
|
|
zadatak: Napišite program koji učitava jednu riječ s najviše 13481 znakova, te ispisuje koliko se puta u toj riječi pojavljuje podstring "ac".
ja sam poslao :
[code:1]
#include<stdio.h>
#include<string.h>
int main(void)
{
char s[13482],i;
int br=0,length;
scanf("%s",s);
length=strlen(s);
for (i=0;i<length;i++)
if ((s[i]=='a')&&(s[i+1]=='c')) br++;
printf("%d",br);
return 0;
}
[/code:1]
ali mi javlja gresku. moze samo neki kripticni hint gdje sam fulao ili izostavio nesto? :D
zadatak: Napišite program koji učitava jednu riječ s najviše 13481 znakova, te ispisuje koliko se puta u toj riječi pojavljuje podstring "ac".
ja sam poslao :
Kod: |
#include<stdio.h>
#include<string.h>
int main(void)
{
char s[13482],i;
int br=0,length;
scanf("%s",s);
length=strlen(s);
for (i=0;i<length;i++)
if ((s[i]=='a')&&(s[i+1]=='c')) br++;
printf("%d",br);
return 0;
}
|
ali mi javlja gresku. moze samo neki kripticni hint gdje sam fulao ili izostavio nesto?
|
|
[Vrh] |
|
Phoenix Forumaš(ica)
Pridružen/a: 15. 05. 2010. (18:46:07) Postovi: (164)16
Sarma: -
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (355F)16
Spol:
Lokacija: /sbin/init
|
Postano: 23:34 ned, 17. 4. 2011 Naslov: |
|
|
Stavio si da ti je [tt]i[/tt] tipa [tt]char[/tt], sto je jedan byte, pa ti u njega ne stanu indexi koji trebaju. Dapace, ocekujem da zavrsi u beskonacnoj petlji (sto verifikator onda umlati i prijavi gresku).
Stavio si da ti je i tipa char, sto je jedan byte, pa ti u njega ne stanu indexi koji trebaju. Dapace, ocekujem da zavrsi u beskonacnoj petlji (sto verifikator onda umlati i prijavi gresku).
_________________ 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] |
|
kikzmyster Forumaš(ica)
Pridružen/a: 14. 10. 2010. (13:35:08) Postovi: (72)16
Spol:
|
|
[Vrh] |
|
A-tom Forumaš(ica)
Pridružen/a: 18. 05. 2010. (22:18:01) Postovi: (AB)16
Spol:
|
Postano: 20:39 sub, 30. 4. 2011 Naslov: |
|
|
Moze pomc oko zadatka. Napravila sam rjesenje tako da na mjesto izbrisanih rijeci dolazi sljedeca rijec no aplikacija mi ne prihvaca rjesenje.
[code:1]
/*
Napišite program koji u�itava jednu liniju teksta s najviše 15486 znakova.
Tom tekstu treba izbrisati svaku 5. 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<string.h>
#include<ctype.h>
void preokreni ( char *a, int stari, int novi){
int temp;
while (stari < novi) {
temp = a[ stari ];
a[ stari ] = a[ novi ];
a[ novi ]= temp;
stari++;
novi--;
}
}
int main(){
char a[15490], b[15490];
int stari, novi, i, brRijeci = 0, zadnji = 0;
gets(a);
for ( novi = 0; a[novi] != '\0'; novi ++){
while (isblank(a[novi])){
b [zadnji++] = a[novi++];
}
brRijeci++;
stari = novi;
while (isalpha(a[novi]))
novi++;
preokreni(a, stari, novi - 1);
if (brRijeci % 5 != 0) {
i = 0;
while (stari + i <= novi) {
b [zadnji + i] = a [stari + i];
i++;
}
zadnji+=i;
}
}
puts(b);
return 0;
}
[/code:1]
Moze pomc oko zadatka. Napravila sam rjesenje tako da na mjesto izbrisanih rijeci dolazi sljedeca rijec no aplikacija mi ne prihvaca rjesenje.
Kod: |
/*
Napišite program koji u�itava jednu liniju teksta s najviše 15486 znakova.
Tom tekstu treba izbrisati svaku 5. 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<string.h>
#include<ctype.h>
void preokreni ( char *a, int stari, int novi){
int temp;
while (stari < novi) {
temp = a[ stari ];
a[ stari ] = a[ novi ];
a[ novi ]= temp;
stari++;
novi--;
}
}
int main(){
char a[15490], b[15490];
int stari, novi, i, brRijeci = 0, zadnji = 0;
gets(a);
for ( novi = 0; a[novi] != '\0'; novi ++){
while (isblank(a[novi])){
b [zadnji++] = a[novi++];
}
brRijeci++;
stari = novi;
while (isalpha(a[novi]))
novi++;
preokreni(a, stari, novi - 1);
if (brRijeci % 5 != 0) {
i = 0;
while (stari + i <= novi) {
b [zadnji + i] = a [stari + i];
i++;
}
zadnji+=i;
}
}
puts(b);
return 0;
}
|
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (355F)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
A-tom Forumaš(ica)
Pridružen/a: 18. 05. 2010. (22:18:01) Postovi: (AB)16
Spol:
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (355F)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
A-tom Forumaš(ica)
Pridružen/a: 18. 05. 2010. (22:18:01) Postovi: (AB)16
Spol:
|
|
[Vrh] |
|
Stuart Forumaš(ica)
Pridružen/a: 11. 01. 2011. (16:42:01) Postovi: (9)16
|
Postano: 15:43 ned, 8. 5. 2011 Naslov: |
|
|
Imam poteškoća s ovim zadatkom:
Napišite program koji učitava jednu liniju teksta s najviše 17 393 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.
Čini mi se da na mom kompu radi, ali aplikacija za zadaće kaže da nije dobro, pa molim za pomoć jer ne znam u čemu stalno griješim.
[code:1]
#include <stdio.h>
void okreni(char string[], int pocetak, int kraj)
{
int i, j=0;
char t;
for(i=pocetak; i<(pocetak+kraj)/2; ++i)
{
t=string[i];
string[i]=string[kraj-1-j];
string[kraj-1-j]=t;
++j;
}
}
void brisi(char string[], int pocetak, int kraj)
{
int i;
for(i=kraj+1; string[i]; ++i)
string[pocetak++]=string[i];
string[pocetak]='\0';
}
int main(void)
{
char string[17394];
int brojac=0, i=0, pocetak=0;
scanf("%[^\n]", string);
while(string[i])
{
if(string[i]==' ')
{
++brojac;
if(brojac%6)
{
okreni(string, pocetak, i);
pocetak=i+1;
}
else
{
brisi(string, pocetak, i);
i=pocetak-1;
}
}
++i;
}
++brojac;
if(brojac%6)
{
okreni(string, pocetak, i);
}
else
{
string[pocetak]='\0';
}
printf("%s", string);
return 0;
}
[/code:1]
Imam poteškoća s ovim zadatkom:
Napišite program koji učitava jednu liniju teksta s najviše 17 393 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.
Čini mi se da na mom kompu radi, ali aplikacija za zadaće kaže da nije dobro, pa molim za pomoć jer ne znam u čemu stalno griješim.
Kod: |
#include <stdio.h>
void okreni(char string[], int pocetak, int kraj)
{
int i, j=0;
char t;
for(i=pocetak; i<(pocetak+kraj)/2; ++i)
{
t=string[i];
string[i]=string[kraj-1-j];
string[kraj-1-j]=t;
++j;
}
}
void brisi(char string[], int pocetak, int kraj)
{
int i;
for(i=kraj+1; string[i]; ++i)
string[pocetak++]=string[i];
string[pocetak]='\0';
}
int main(void)
{
char string[17394];
int brojac=0, i=0, pocetak=0;
scanf("%[^\n]", string);
while(string[i])
{
if(string[i]==' ')
{
++brojac;
if(brojac%6)
{
okreni(string, pocetak, i);
pocetak=i+1;
}
else
{
brisi(string, pocetak, i);
i=pocetak-1;
}
}
++i;
}
++brojac;
if(brojac%6)
{
okreni(string, pocetak, i);
}
else
{
string[pocetak]='\0';
}
printf("%s", string);
return 0;
}
|
|
|
[Vrh] |
|
pravipurger Forumaš(ica)
Pridružen/a: 11. 07. 2009. (10:29:44) Postovi: (128)16
Spol:
|
|
[Vrh] |
|
Stuart Forumaš(ica)
Pridružen/a: 11. 01. 2011. (16:42:01) Postovi: (9)16
|
|
[Vrh] |
|
Gino Forumaš(ica)
Pridružen/a: 11. 09. 2008. (10:54:06) Postovi: (370)16
Lokacija: Pula
|
|
[Vrh] |
|
Sekanta Forumaš(ica)
Pridružen/a: 13. 09. 2009. (10:14:33) Postovi: (48)16
|
Postano: 16:25 sri, 11. 5. 2011 Naslov: |
|
|
Moze help na ovom zadatku?
[code:1]
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
/*Zadatak 2:
Napišite program koji učitava jednu liniju teksta s najviše 14335 znakova.
Tom tekstu treba izbrisati svaku 7. 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.*/
char* okreni(char novi[],int n)
{
int i,t,p=n-1;
for(i=0;i<n/2;++i)
{
t=novi[i];
novi[i]=novi[p];
novi[p]=t;
p--;
}
novi[n]='\0';
return novi;
}
int main(){
int i,j=0,pocetak,k,predzadnji=0,zadnji,vrati_i=0,n=0;
char string[14336],novi[14336],*zavrsni, razmak[2];
scanf(" %[^\n]",string);
zavrsni=(char*)malloc(14336*sizeof(char));
zavrsni[0]='\0';
for(pocetak=0; pocetak<14336;pocetak++)
if(string[pocetak]!=' ') break;
for(i=pocetak; string[i]!='\0';++i)
{
if(!isalpha(string[i]))
{
++j;
zadnji=i;
vrati_i=predzadnji;
if(j%7==0)
{
for(k=i;string[k]!='\0';k++)
{
string[predzadnji]=string[k];
predzadnji++;
}
string[predzadnji]='\0';
i=vrati_i;
}
predzadnji=zadnji;
}
}
razmak[0]=' ';
razmak[1]='\0';
for(i=pocetak;string[i]!='\0';++i)
{
if(isalpha(string[i]))
novi[n++]=string[i];
if(!isalpha(string[i]) || string[i+1]=='\0')
{
okreni(novi,n);
n=0;
strcat(zavrsni,novi);
if(string[i]!='\0')
strcat(zavrsni,razmak);
}
}
if(string[0]==' ')
printf("%s",razmak);
printf("%s\n",zavrsni);
system("pause");
return 0;
}
[/code:1]
Moze help na ovom zadatku?
Kod: |
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
/*Zadatak 2:
Napišite program koji učitava jednu liniju teksta s najviše 14335 znakova.
Tom tekstu treba izbrisati svaku 7. 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.*/
char* okreni(char novi[],int n)
{
int i,t,p=n-1;
for(i=0;i<n/2;++i)
{
t=novi[i];
novi[i]=novi[p];
novi[p]=t;
p--;
}
novi[n]='\0';
return novi;
}
int main(){
int i,j=0,pocetak,k,predzadnji=0,zadnji,vrati_i=0,n=0;
char string[14336],novi[14336],*zavrsni, razmak[2];
scanf(" %[^\n]",string);
zavrsni=(char*)malloc(14336*sizeof(char));
zavrsni[0]='\0';
for(pocetak=0; pocetak<14336;pocetak++)
if(string[pocetak]!=' ') break;
for(i=pocetak; string[i]!='\0';++i)
{
if(!isalpha(string[i]))
{
++j;
zadnji=i;
vrati_i=predzadnji;
if(j%7==0)
{
for(k=i;string[k]!='\0';k++)
{
string[predzadnji]=string[k];
predzadnji++;
}
string[predzadnji]='\0';
i=vrati_i;
}
predzadnji=zadnji;
}
}
razmak[0]=' ';
razmak[1]='\0';
for(i=pocetak;string[i]!='\0';++i)
{
if(isalpha(string[i]))
novi[n++]=string[i];
if(!isalpha(string[i]) || string[i+1]=='\0')
{
okreni(novi,n);
n=0;
strcat(zavrsni,novi);
if(string[i]!='\0')
strcat(zavrsni,razmak);
}
}
if(string[0]==' ')
printf("%s",razmak);
printf("%s\n",zavrsni);
system("pause");
return 0;
}
|
|
|
[Vrh] |
|
kkarlo Forumaš(ica)
Pridružen/a: 19. 05. 2010. (08:43:59) Postovi: (1B2)16
Spol:
|
|
[Vrh] |
|
Stuart Forumaš(ica)
Pridružen/a: 11. 01. 2011. (16:42:01) Postovi: (9)16
|
|
[Vrh] |
|
kkarlo Forumaš(ica)
Pridružen/a: 19. 05. 2010. (08:43:59) Postovi: (1B2)16
Spol:
|
Postano: 14:27 čet, 12. 5. 2011 Naslov: |
|
|
Nije mi jasno...
U cetvrtoj zadaci u drugom zadatku, radi se provjera sa stringom od 15200 znakova, nekad od 15220 znakova, uglavnom sa vise znakova nego je zadano u zadatku...a u zadatku mi pise da se ucitava linija teksta od 15174 znaka...
Mislim stavio sam nakon ucitavanja provjeru koliko je dugacak string, ako je duljina 15175, da na to mjesto stavi '\0', ali i dalje nece...
da li mozda tu nastaje problem ili sta? Jer program dela da bolje nemoze :lol:
Sam me zanima dal je to mozda problem ne prihvacanja programa...?
Nije mi jasno...
U cetvrtoj zadaci u drugom zadatku, radi se provjera sa stringom od 15200 znakova, nekad od 15220 znakova, uglavnom sa vise znakova nego je zadano u zadatku...a u zadatku mi pise da se ucitava linija teksta od 15174 znaka...
Mislim stavio sam nakon ucitavanja provjeru koliko je dugacak string, ako je duljina 15175, da na to mjesto stavi '\0', ali i dalje nece...
da li mozda tu nastaje problem ili sta? Jer program dela da bolje nemoze
Sam me zanima dal je to mozda problem ne prihvacanja programa...?
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (355F)16
Spol:
Lokacija: /sbin/init
|
Postano: 16:43 čet, 12. 5. 2011 Naslov: |
|
|
Ne, string biva dugacak tocno kako pise u zadatku. Upravo sam provjerio tvoj zadnji protuprimjer i ispravne je duljine (tocno 15174 znaka).
Vidi s nekim demosom da ti pokusa pomoci, pa ako ne ide, javi se kako pise u uputi aplikacije. Mozemo se i naci IRL (konzultacije), ako treba.
Ne, string biva dugacak tocno kako pise u zadatku. Upravo sam provjerio tvoj zadnji protuprimjer i ispravne je duljine (tocno 15174 znaka).
Vidi s nekim demosom da ti pokusa pomoci, pa ako ne ide, javi se kako pise u uputi aplikacije. Mozemo se i naci IRL (konzultacije), ako treba.
_________________ 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] |
|
|