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

Stringovi
WWW:
Idite na Prethodno  1, 2, 3  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
moi
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 21. 02. 2007. (13:39:09)
Postovi: (26)16
Spol: žensko
Sarma = la pohva - posuda
= 2 - 1

PostPostano: 19:25 uto, 16. 6. 2009    Naslov: Citirajte i odgovorite

Mene zanima kako bi radilo pridruživanje u "matrici matrica"? Npr. imam "malu" matricu M[2][2] i želim je staviti u "veliku" maticu A koja se sastoji od puno matrica M.
[code:1]#include<stdio.h>
#include<stdlib.h>
#include<string.h>

typedef int matrica[2][2];

int main(){


int i,j,m,n, M[2][2];
matrica **A;

scanf("%d", &m);
scanf("%d", &n);

A=(matrica **)malloc(m*sizeof(matrica *));
if(A==NULL){
printf("Nije alokacija dobra");
exit(1);
}
for(i=0;i<m;i++){
A[i]=(matrica *)malloc(n*sizeof(matrica));
if(A[i]==NULL){
printf("Nije alokacija dobra");
exit(1);
}
}
for(i=0;i<2;i++)
for(j=0;j<2;j++){
printf("Unesite element na mjestu %d %d matrice M\n", i+1,j+1);
scanf("%d", &M[i][j]);
}

for(i=0;i<m;i++)
for(j=0;j<n;j++)A[i][j]=M;/*Ne dopušta ovakvo pridruživanje*/


[/code:1]
Mene zanima kako bi radilo pridruživanje u "matrici matrica"? Npr. imam "malu" matricu M[2][2] i želim je staviti u "veliku" maticu A koja se sastoji od puno matrica M.
Kod:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
 
typedef int matrica[2][2];

int main(){
   
   
    int i,j,m,n, M[2][2];
    matrica **A;
   
    scanf("%d", &m);
    scanf("%d", &n);
   
    A=(matrica **)malloc(m*sizeof(matrica *));
    if(A==NULL){
                printf("Nije alokacija dobra");
                exit(1);
                }
    for(i=0;i<m;i++){
                     A[i]=(matrica *)malloc(n*sizeof(matrica));
                     if(A[i]==NULL){
                                    printf("Nije alokacija dobra");
                                    exit(1);
                                    }
                                    }
    for(i=0;i<2;i++)
    for(j=0;j<2;j++){
                     printf("Unesite element na mjestu %d %d matrice M\n", i+1,j+1);
                     scanf("%d", &M[i][j]);
                     }
                     
    for(i=0;i<m;i++)
    for(j=0;j<n;j++)A[i][j]=M;/*Ne dopušta ovakvo pridruživanje*/
   
   


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


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

PostPostano: 19:46 uto, 16. 6. 2009    Naslov: Citirajte i odgovorite

[tt]A[i][j][/tt] i [tt]M[/tt] su nizovi (nizova [tt]int[/tt]-ova), a nizove ne mozes pridruzivati. :) Trebaju ti jos dvije [tt]for()[/tt]-petlje:
[code:1]for(i = 0; i < m; ++i)
for(j = 0; j < n; ++j)
for(k = 0; k < 2; ++k)
for (l = 0; l < 2; ++l)
A[i][j][k][l] = M[k][l];[/code:1]
ili cetiri pridruzivanja:
[code:1]for(i = 0; i < m; ++i)
for(j = 0; j < n; ++j) {
A[i][j][0][0] = M[0][0];
A[i][j][0][1] = M[0][1];
A[i][j][1][0] = M[1][0];
A[i][j][1][1] = M[1][1];
}[/code:1]
Alternativno, mozes si pomoci funkcijom [url=http://www.manpagez.com/man/3/memmove/][tt]memmove[/tt][/url]. 8)
A[i][j] i M su nizovi (nizova int-ova), a nizove ne mozes pridruzivati. Smile Trebaju ti jos dvije for()-petlje:
Kod:
for(i = 0; i < m; ++i)
  for(j = 0; j < n; ++j)
    for(k = 0; k < 2; ++k)
      for (l = 0; l < 2; ++l)
        A[i][j][k][l] = M[k][l];

ili cetiri pridruzivanja:
Kod:
for(i = 0; i < m; ++i)
  for(j = 0; j < n; ++j) {
    A[i][j][0][0] = M[0][0];
    A[i][j][0][1] = M[0][1];
    A[i][j][1][0] = M[1][0];
    A[i][j][1][1] = M[1][1];
  }

Alternativno, mozes si pomoci funkcijom memmove. Cool



_________________
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
moi
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 21. 02. 2007. (13:39:09)
Postovi: (26)16
Spol: žensko
Sarma = la pohva - posuda
= 2 - 1

PostPostano: 20:00 uto, 16. 6. 2009    Naslov: Citirajte i odgovorite

Sada radi, hvala puno :D
Sada radi, hvala puno Very Happy


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


Pridružen/a: 26. 09. 2007. (09:56:59)
Postovi: (153)16
Spol: žensko
Sarma = la pohva - posuda
27 = 51 - 24

PostPostano: 16:36 čet, 18. 6. 2009    Naslov: Citirajte i odgovorite

Skripta, strana 78. Sve ove funkcije od isalnum do isxdigit, zašto to prima int, a ne char? Jer vidim da i u predavanjima prof. Singera isto piše da prima int, al nije mi baš jasno. [img]http://s2.photobucket.com/albums/y29/waterfly89/Smilies/misli.gif[/img]
Skripta, strana 78. Sve ove funkcije od isalnum do isxdigit, zašto to prima int, a ne char? Jer vidim da i u predavanjima prof. Singera isto piše da prima int, al nije mi baš jasno.



_________________
Weit von hier fällt Gold von den Sternen
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Luuka
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 13. 02. 2007. (20:34:54)
Postovi: (925)16
Spol: muško
Sarma = la pohva - posuda
188 = 301 - 113
Lokacija: Hakuna Matata

PostPostano: 17:09 čet, 18. 6. 2009    Naslov: Citirajte i odgovorite

Rekao bih da je greška, trebale bi primat char, osim ako nisu implementirane tako da prime int pa se onaj char konvertira po ascii tablici... pa u ovisnosti o tome gleda jel znamenka, slovo ili kaj već... :D
Rekao bih da je greška, trebale bi primat char, osim ako nisu implementirane tako da prime int pa se onaj char konvertira po ascii tablici... pa u ovisnosti o tome gleda jel znamenka, slovo ili kaj već... Very Happy



_________________
"Bolje bi prolazio na faxu da sam na drogama nego na netu" - by a friend of mine
"Poslije spavanja doma spavanje bilo di mi je najdraža stvar" - by the same guy Very Happy
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
vsego
Site Admin
Site Admin


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

PostPostano: 17:33 čet, 18. 6. 2009    Naslov: Citirajte i odgovorite

[url=http://linux.die.net/man/3/isdigit]Nije greska[/url]. :ccc:

Samo posalji slovo; konverzija je implicitna. 8) Pretpostavljam da je [tt]int[/tt] zbog portabilnosti (wide characters i sl), no tocan razlok ce vjerojatno znati mdoko ili tako netko tko puno vise koristi C. :)
Nije greska. Ccc.... Sram te bilo...

Samo posalji slovo; konverzija je implicitna. Cool Pretpostavljam da je int zbog portabilnosti (wide characters i sl), no tocan razlok ce vjerojatno znati mdoko ili tako netko tko puno vise koristi C. Smile



_________________
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
Tygy
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 22. 11. 2008. (15:27:08)
Postovi: (102)16
Sarma = la pohva - posuda
= 17 - 14

PostPostano: 19:29 čet, 18. 6. 2009    Naslov: Citirajte i odgovorite

znam da nije mjesto za pitati,al je ovaj trenutno aktualan..
jel imamo sutra vježbe i hoće li bit tih masovnih kozultacija? :jez3:
znam da nije mjesto za pitati,al je ovaj trenutno aktualan..
jel imamo sutra vježbe i hoće li bit tih masovnih kozultacija? Jez 3


[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: 19:43 čet, 18. 6. 2009    Naslov: Citirajte i odgovorite

[quote="vsego"]Pretpostavljam da je [tt]int[/tt] zbog portabilnosti (wide characters i sl), no tocan razlok ce vjerojatno znati mdoko ili tako netko tko puno vise koristi C. :)[/quote]
[tt]int[/tt] je radi kompatibilnosti s funkcijama koje citaju jedan po jedan znak iz tekstualnih datoteka (kao npr. [url=http://www.acm.uiuc.edu/webmonkeys/book/c_guide/2.12.html#fgetc][tt]fgetc[/tt][/url]).
Fora je u tome kako je [tt]EOF[/tt] definiran:
[quote="stdio.h"]
#define EOF (-1)
[/quote]
Ne zelimo da nam funkcije iz [tt]ctype.h[/tt] ne razlikuju [tt]EOF[/tt] od [tt](unsigned char) 255[/tt], onda to rijesimo tako da funkcije iz [tt]ctype.h[/tt] primaju [tt]int[/tt].
vsego (napisa):
Pretpostavljam da je int zbog portabilnosti (wide characters i sl), no tocan razlok ce vjerojatno znati mdoko ili tako netko tko puno vise koristi C. Smile

int je radi kompatibilnosti s funkcijama koje citaju jedan po jedan znak iz tekstualnih datoteka (kao npr. fgetc).
Fora je u tome kako je EOF definiran:
stdio.h (napisa):

#define EOF (-1)

Ne zelimo da nam funkcije iz ctype.h ne razlikuju EOF od (unsigned char) 255, onda to rijesimo tako da funkcije iz ctype.h primaju int.



_________________
Extraordinary claims require extraordinary evidence. – Carl Sagan
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
vsego
Site Admin
Site Admin


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

PostPostano: 22:22 čet, 18. 6. 2009    Naslov: Citirajte i odgovorite

[quote="Tygy"]jel imamo sutra vježbe i hoće li bit tih masovnih kozultacija? :jez3:[/quote]

Ne. :) Vjezbe su odradjene, a za masovne konzultacije se nitko nije javio (dogovor je bio ako vas se skupi 5 ili vise, da mi javite do srijede (jucer)). :?

Odradih jucer i danas cca 4 sata konzultacije (s ukupno troje studenata), plus hrpa mailova, plus ovdje na Forumu... zakljucio sam da su se javili oni koji su trebali. :)

@mdoko: Genijalno! :D Uopce mi to nije palo na pamet. :oops: Thanx! :)
Tygy (napisa):
jel imamo sutra vježbe i hoće li bit tih masovnih kozultacija? Jez 3


Ne. Smile Vjezbe su odradjene, a za masovne konzultacije se nitko nije javio (dogovor je bio ako vas se skupi 5 ili vise, da mi javite do srijede (jucer)). Confused

Odradih jucer i danas cca 4 sata konzultacije (s ukupno troje studenata), plus hrpa mailova, plus ovdje na Forumu... zakljucio sam da su se javili oni koji su trebali. Smile

@mdoko: Genijalno! Very Happy Uopce mi to nije palo na pamet. Embarassed Thanx! Smile



_________________
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
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: 19:09 pet, 19. 6. 2009    Naslov: Citirajte i odgovorite

[quote="vsego"]
@mdoko: Genijalno! :D Uopce mi to nije palo na pamet. :oops: Thanx! :)[/quote]
Nije ni meni kad sam to prvi put skuzio, ali sam guglao :wink:
vsego (napisa):

@mdoko: Genijalno! Very Happy Uopce mi to nije palo na pamet. Embarassed Thanx! Smile

Nije ni meni kad sam to prvi put skuzio, ali sam guglao Wink



_________________
Extraordinary claims require extraordinary evidence. – Carl Sagan
[Vrh]
Korisnički profil Pošaljite privatnu poruku Posjetite Web stranice
samanta
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 14. 01. 2008. (15:07:57)
Postovi: (15)16
Sarma = la pohva - posuda
= 1 - 1

PostPostano: 0:51 pon, 22. 6. 2009    Naslov: Citirajte i odgovorite

Zanima me zasto ovo ne mogu nikako natjerat da radi,inace to je zad 5.10 u skripti
Zanima me zasto ovo ne mogu nikako natjerat da radi,inace to je zad 5.10 u skripti





5.10.c
 Description:

Download
 Filename:  5.10.c
 Filesize:  645 Bytes
 Downloaded:  88 Time(s)

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


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

PostPostano: 1:48 pon, 22. 6. 2009    Naslov: Citirajte i odgovorite

Zato jer se sa [tt]strcmp()[/tt] usporedjuju stringovi, a ne znakovi. ;)
Zato jer se sa strcmp() usporedjuju stringovi, a ne znakovi. Wink



_________________
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
samanta
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 14. 01. 2008. (15:07:57)
Postovi: (15)16
Sarma = la pohva - posuda
= 1 - 1

PostPostano: 2:57 pon, 22. 6. 2009    Naslov: Citirajte i odgovorite

Hvala,nikad ne bi skuzila gresku..
Hvala,nikad ne bi skuzila gresku..


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


Pridružen/a: 27. 03. 2009. (16:43:42)
Postovi: (62)16
Spol: žensko
Sarma = la pohva - posuda
= 9 - 8
Lokacija: ...

PostPostano: 13:55 sri, 24. 6. 2009    Naslov: Citirajte i odgovorite

moze mala pomoc oko nterostucivanja znaka?
tnx

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

[code:1]#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

void nterostruci_znak(char s[], char c, int n){
int i, j=0, k;
char t=tolower(c);
for(i=0; s[i]!='\0'; i++){
if(s[i]==t) j+=n;
}

for(; i>=0; i--){
s[i+j]=s[i];
if(s[i]==t){
k=n;
while(k) s[i+(--k)]=c;
}
}
}

int main(){
char s[45];
int n;

printf("Upisi rijec: ");
scanf("%44s", s);
printf("\nKoliko puta zelis da se ponavlja?\n ");
scanf("%d", &n);

printf("Prije funkcije: %s\n", s);
printf("Nakon funkcije: ");
nterostruci_znak(s, 'p', n);
printf("%s\n", s);

system("PAUSE");
return 0;
}

je li uopce potrebna varijabla k jer ako je n=4 i 3 puta se pojavljuje to slovo 'p' u rijeci popokatepetl, i bi se trebao smanjivati i ici od prethodne duljine niza+12(=j), ali meni prebrise pola stringa. vidim samo puno slova p. :grrr: [/code:1]

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

i ako nije problem...
u cemu je kvaka s ovim zadatkom? treba izbaciti sve znamenke iz niza. probala sam i int c=(int)s[i], ali nista. upisem mate ili mate123 i on se odmah ugasi

[size=9][color=#999999]Added after 38 seconds:[/color][/size]

[code:1]#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

void brisi_znamenke(char s[]){
int i, j, c;
for(i=0; s[i]!='\0'; i++){
if(!isdigit(s[i])) s[j++]=s[i];
}
s[j]='\0';
}

int main(){
char s[10];

printf("Upisi rijec: ");
scanf("%9s", s);
brisi_znamenke(s);
printf("String nakon funkcije: \n");
printf("%s\n", s);

system("PAUSE");
return 0;
}
tnx[/code:1]
moze mala pomoc oko nterostucivanja znaka?
tnx

Added after 3 minutes:

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

void nterostruci_znak(char s[], char c, int n){
     int i, j=0, k;
     char t=tolower(c);
     for(i=0; s[i]!='\0'; i++){
              if(s[i]==t) j+=n;
              }
     
     for(; i>=0; i--){
           s[i+j]=s[i];
           if(s[i]==t){
                       k=n;
                       while(k) s[i+(--k)]=c;
                       }
           }
     }
     
int main(){
    char s[45];
    int n;
   
    printf("Upisi rijec:  ");
    scanf("%44s", s);
    printf("\nKoliko puta zelis da se ponavlja?\n ");
    scanf("%d", &n);
   
    printf("Prije funkcije: %s\n", s);
    printf("Nakon funkcije: ");
    nterostruci_znak(s, 'p', n);
    printf("%s\n", s);
   
    system("PAUSE");
    return 0;
}               

je li uopce potrebna varijabla k jer ako je n=4 i 3 puta se pojavljuje to slovo 'p' u rijeci popokatepetl, i bi se trebao smanjivati i ici od prethodne duljine niza+12(=j), ali meni prebrise pola stringa. vidim samo puno slova p.  :grrr:


Added after 2 minutes:

i ako nije problem...
u cemu je kvaka s ovim zadatkom? treba izbaciti sve znamenke iz niza. probala sam i int c=(int)s[i], ali nista. upisem mate ili mate123 i on se odmah ugasi

Added after 38 seconds:

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

void brisi_znamenke(char s[]){
     int i, j, c;
     for(i=0; s[i]!='\0'; i++){
              if(!isdigit(s[i])) s[j++]=s[i];
              }
              s[j]='\0';
     }
     
int main(){
    char s[10];
   
    printf("Upisi rijec: ");
    scanf("%9s", s);
    brisi_znamenke(s);
    printf("String nakon funkcije: \n");
    printf("%s\n", s);
   
    system("PAUSE");
    return 0;
}
tnx


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


Pridružen/a: 04. 12. 2007. (20:55:30)
Postovi: (A9)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
= 6 - 0

PostPostano: 14:02 sri, 24. 6. 2009    Naslov: Citirajte i odgovorite

u ovom drugom zadatku u funkciji trebas postavit da ti j=0, i onda radi :D
u ovom drugom zadatku u funkciji trebas postavit da ti j=0, i onda radi Very Happy



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


Pridružen/a: 21. 02. 2007. (13:39:09)
Postovi: (26)16
Spol: žensko
Sarma = la pohva - posuda
= 2 - 1

PostPostano: 17:15 sri, 24. 6. 2009    Naslov: Citirajte i odgovorite

[code:1]int stringcompare(char *s, char *t){

int i,j;

for(i=0;s[i]!='\0' && t[i]!='\0';i++)
if(s[i]<t[i])return -1;
else
if(s[i]>t[i])return 1;
if(s[i]<t[i])return -1;
if(s[i]>t[i])return 1;
return 0;
}[/code:1]

Može li mi netko objasniti zašto su u ovom kodu dva puta provjeravane dvije stvari. To je, inače, implementacija funkcije strcmp prepisana iz rješenja prošlogodišnjeg kolokvija.
Kod:
int stringcompare(char *s, char *t){
   
    int i,j;
   
    for(i=0;s[i]!='\0' && t[i]!='\0';i++)
    if(s[i]<t[i])return -1;
    else
    if(s[i]>t[i])return 1;
    if(s[i]<t[i])return -1;
    if(s[i]>t[i])return 1;
    return 0;
}


Može li mi netko objasniti zašto su u ovom kodu dva puta provjeravane dvije stvari. To je, inače, implementacija funkcije strcmp prepisana iz rješenja prošlogodišnjeg kolokvija.


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


Pridružen/a: 07. 11. 2008. (14:57:52)
Postovi: (453)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
17 = 68 - 51
Lokacija: Hilbertov hotel

PostPostano: 17:29 sri, 24. 6. 2009    Naslov: Citirajte i odgovorite

mislim da su se zeznuli malo.
al, nije mi jasan kod kao takav.
zar to ne dođe na nulti znak, vidi dali je jedan "manji" od drugog i onda vrati +/-1? mislim da bi trebao kod izgledati drukčije:
[code:1]
int stringcompare(char *s, char *t){

int i, raz = 0;
for (i = 0; s[i] != '\0' && t[i] != '\0'; ++i) {
if (s[i]) < t[i]) --raz;
if (s[i] > t[i]) ++raz;
}
if (raz > 0) return 7;
if (raz < 0) return -7;
if (raz == 0) return 0;
}[/code:1]
mislim da su se zeznuli malo.
al, nije mi jasan kod kao takav.
zar to ne dođe na nulti znak, vidi dali je jedan "manji" od drugog i onda vrati +/-1? mislim da bi trebao kod izgledati drukčije:
Kod:

int stringcompare(char *s, char *t){

int i, raz = 0;
for (i = 0; s[i] != '\0' && t[i] != '\0'; ++i) {
            if (s[i]) < t[i]) --raz;
            if (s[i] > t[i]) ++raz;
            }
if (raz > 0) return 7;
if (raz < 0) return -7;
if (raz == 0) return 0;
}



_________________
Sedam je prost broj Smile

Bolonja je smeće i to pod hitno treba mijenjat


Zadnja promjena: Milojko; 8:30 pet, 26. 6. 2009; ukupno mijenjano 2 put/a.
[Vrh]
Korisnički profil Pošaljite privatnu poruku MSNM
Luuka
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 13. 02. 2007. (20:34:54)
Postovi: (925)16
Spol: muško
Sarma = la pohva - posuda
188 = 301 - 113
Lokacija: Hakuna Matata

PostPostano: 18:31 sri, 24. 6. 2009    Naslov: Citirajte i odgovorite

Ja ne bih reko da su se zeznuli ;)

Naime, unutar for petlje je samo if-else, ona druga 2 if-a su vani ;)

Unutar for-a se provjerava znak po znak, i ako su isti se ide dalje, a ko se razlikuju se nešto vraća.
Ona 2 ifa izvan for-a (koji kao provjeravaju isto) ustvari provjeravaju razliku duljine stringa, jer je '\0'<bilo koji znak ;)

Ako i to sve prođe, vrati se 0, dakle isti su :D

edit: ustvari, sad kad gledam, ne trebaju ova 2 if-a vani ako je && u petlji... to bi trebalo da je ||...
Ja ne bih reko da su se zeznuli Wink

Naime, unutar for petlje je samo if-else, ona druga 2 if-a su vani Wink

Unutar for-a se provjerava znak po znak, i ako su isti se ide dalje, a ko se razlikuju se nešto vraća.
Ona 2 ifa izvan for-a (koji kao provjeravaju isto) ustvari provjeravaju razliku duljine stringa, jer je '\0'<bilo koji znak Wink

Ako i to sve prođe, vrati se 0, dakle isti su Very Happy

edit: ustvari, sad kad gledam, ne trebaju ova 2 if-a vani ako je && u petlji... to bi trebalo da je ||...



_________________
"Bolje bi prolazio na faxu da sam na drogama nego na netu" - by a friend of mine
"Poslije spavanja doma spavanje bilo di mi je najdraža stvar" - by the same guy Very Happy
[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
vsego
Site Admin
Site Admin


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

PostPostano: 20:15 sri, 24. 6. 2009    Naslov: Citirajte i odgovorite

@malena: Trebas imati [tt]j[/tt] i u unutrasnjoj pretlji, plus krivo brojis broj novih znakova. :?

[code:1]void nterostruci_znak(char s[], char c, int n){
int i, j=0, k;
char t=tolower(c);
for(i=0; s[i]!='\0'; i++){
if(s[i]==t) j+=n-1;
}

for(; i>=0; i--){
s[i+j]=s[i];
if(s[i]==t){
j -= n-1;
k = n-1;
while(k) s[i+j+(--k)]=c;
}
}
}[/code:1]
@malena: Trebas imati j i u unutrasnjoj pretlji, plus krivo brojis broj novih znakova. Confused

Kod:
void nterostruci_znak(char s[], char c, int n){
     int i, j=0, k;
     char t=tolower(c);
     for(i=0; s[i]!='\0'; i++){
              if(s[i]==t) j+=n-1;
              }
     
     for(; i>=0; i--){
           s[i+j]=s[i];
           if(s[i]==t){
                       j -= n-1;
                       k = n-1;
                       while(k) s[i+j+(--k)]=c;
                       }
           }
     }



_________________
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
markotron
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 26. 10. 2008. (12:07:29)
Postovi: (95)16
Spol: kućni ljubimac
Sarma = la pohva - posuda
= 28 - 28
Lokacija: Umag

PostPostano: 22:34 sri, 24. 6. 2009    Naslov: Citirajte i odgovorite

Ja mislim da trebaju ova dva if-a vani... kad nebi bilo ova dva ifa vani.. nebi pravio razliku.. između:

jaje i jajej,

jer bi prva 4 znaka bila jednaka.. onda bi izasao iz petlje.. i vratio nulu kad nebi bila ova dva ifa...

a da je u petlji || onda bi dosao na \0 i ako je jedan duzi.. vrazio sta vec treba...

tako da kad bi u petlji bilo || onda nebi trebala vanjska dva ifa..

bar tako mislim..
Ja mislim da trebaju ova dva if-a vani... kad nebi bilo ova dva ifa vani.. nebi pravio razliku.. između:

jaje i jajej,

jer bi prva 4 znaka bila jednaka.. onda bi izasao iz petlje.. i vratio nulu kad nebi bila ova dva ifa...

a da je u petlji || onda bi dosao na \0 i ako je jedan duzi.. vrazio sta vec treba...

tako da kad bi u petlji bilo || onda nebi trebala vanjska dva ifa..

bar tako mislim..



_________________
reductio ad absurdum
[Vrh]
Korisnički profil Pošaljite privatnu poruku MSNM
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  Sljedeće
Stranica 2 / 3.

 
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