Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem nizovi - ispisivanje rijeci obrnuto ?

[es] :: C/C++ programiranje :: Problem nizovi - ispisivanje rijeci obrnuto ?

[ Pregleda: 4275 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

xeron
Sarajevo

Član broj: 25909
Poruke: 133
*.PPPoE-2209.sa.bih.net.ba.



Profil

icon Problem nizovi - ispisivanje rijeci obrnuto ?24.03.2006. u 19:19 - pre 220 meseci
U cemu je greska ?

Sta program treba da radi ?
Prvo se unese duzina rijeci, onada unosimo tu rijec, program ispisuje rijec obrnuto ...
Code:
#include <windows.h>
#include <stdio.h>

main(){
       int wl;
       int i,j;
       printf("Duzina rijeci koju unosite iznosi: \n");
       scanf("%d",&wl);
       char word[wl];
       for(i=0;i<=wl;i++){
                          scanf("%c",& word[wl]);
                          
                          }
                          
                          printf("rijec obrnuto: \n");
                          for(i=wl;i<iwl;i--){
                                              printf("%c",word[wl]);
                                              }
                          
                          
                          
                                            
                                            system("pause");
                                            return 0;
                                            }
                          

OUTPUT:
duzina rijeci koju unosite : 3
unosite svoju rijec: npr. net

rijec obrnuto: ten

Mislim da je greska u


Code:
 for(i=i<wl;iwl;i--){
                                              printf("%c",word[wl]);
                                              }

if (argc > 1 && strcmp(argv[1], "-advice") == 0) {
printf("Don't Panic!n");
exit(42);
}
 
Odgovor na temu

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
80.93.240.*



+2 Profil

icon Re: Problem nizovi - ispisivanje rijeci obrnuto ?24.03.2006. u 22:12 - pre 220 meseci
Aj potrudi se da tu reč makar uneseš kako treba. Ako to uradiš, ja ću ti odraditi ostalo.
Mrzi me da pišem from scratch :D
77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

NrmMyth
Ivan Maček
Split

Član broj: 63456
Poruke: 849
*.cmu.carnet.hr.

Sajt: www.dump.hr


Profil

icon Re: Problem nizovi - ispisivanje rijeci obrnuto ?24.03.2006. u 22:52 - pre 220 meseci
Code:

for( int  i = strlen( rijec ) -1; i >= 0; --i )
        putchar( rijec[i] );
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Problem nizovi - ispisivanje rijeci obrnuto ?25.03.2006. u 10:57 - pre 220 meseci
Evo ti jedan zadatak za vezbu:

Napraviti funkciju koja kao argument prima 'char*' (tj. neki nazovi string teksta) i koja ce
taj prosledjeni tekst okrenuti, tj. modifikovati ga da bude u obrnutom redosledu.

Zabranjeno je koristiti bilo koju bibliotecku funkciju.
 
Odgovor na temu

xeron
Sarajevo

Član broj: 25909
Poruke: 133
*.PPPoE-634.sa.bih.net.ba.



Profil

icon Re: Problem nizovi - ispisivanje rijeci obrnuto ?25.03.2006. u 16:11 - pre 220 meseci
pa ovo je trebalo biti cilj gore navedenog zadatka ...

samo jos ne kontam u cemu je greska :D
if (argc > 1 && strcmp(argv[1], "-advice") == 0) {
printf("Don't Panic!n");
exit(42);
}
 
Odgovor na temu

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
80.93.240.*



+2 Profil

icon Re: Problem nizovi - ispisivanje rijeci obrnuto ?25.03.2006. u 16:40 - pre 220 meseci
Sine imaš mali milion grešaka.
Napravi ovo što ti je Molder (X Files) rekao.
Napraviš f-ju koja kao argument ima char*;
Onda će ti biti mnogo lakše da napišeš program i shvatićeš šta si ovde aj da kažem nalupao.
Da zanemarimo greške u kojima ne znaš kako sa scanf unosiš elemente niza, imaš velikih algoritamskih grešaka.
Jednostavno rečeno, ne znaš kako da uneseš reč.
Probaj samo normalno da ispišeš tu reč koju si kao uneo pa vidi uspeva li ili ne :D

77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Problem nizovi - ispisivanje rijeci obrnuto ?25.03.2006. u 17:45 - pre 220 meseci
Probaj nekako ovako /NETESTIRANO/
Code:

void okreni( char *t )
{
   int duzina = -1;
   while ( t[ ++duzina ] )
    ;

   char pomocna;

   for ( int i=0; i<duzina/2; i++ )
   {
      pomocna = t[i];
      t[i] = t[duzina-i-1];
      t[duzina-i-1] = pomocna;
   }
}


Code:

char *tekst = "neki tekst";

// printf ( ovde ispisi pocetni tekst ...

okreni( tekst );

// printf ( ovde ispisi krajni tekst ...



[Ovu poruku je menjao X Files dana 25.03.2006. u 18:46 GMT+1]
 
Odgovor na temu

z@re
Zarko Bulatovic
Split

Član broj: 29849
Poruke: 443
*.cmu.carnet.hr.



+25 Profil

icon Re: Problem nizovi - ispisivanje rijeci obrnuto ?27.03.2006. u 01:28 - pre 220 meseci
mene interesira sta ce ti onaj windows.h header :)



Q: HSP56 Micromodem nece da radi kompjuter ga prepozna a kad treba da se konektujem nece ne daje ni znaka zivota. u cemu je problem.

A: Crko mozda od grmljavine mozda od spanaca. Uglavnom baci ga u WC solju jako povuci vodu. Skupi 5e i uzmi drugi i ne postuj temu na pogresno mesto.
 
Odgovor na temu

jedan_veoma_obican_kreten
Mladen Covic

Član broj: 89491
Poruke: 2
..mtsns-ns.customer.sbb.co.yu.



Profil

icon Re: Problem nizovi - ispisivanje rijeci obrnuto ?27.03.2006. u 05:51 - pre 220 meseci
A mene interesira zasto

int duzina = -1;
while(t[++duzina]);

a ne,

int trenutnaPozicija = 0;
while (t[trenunaPozicija++]) duzina++;

Izgleda da svi patimo od starih kafanskih trikova...

Normalni su ljudi, normalne su prave
Ali su prave i paralelne
Hristos razapet na paralelnim duzima - putokaz?!
 
Odgovor na temu

jedan_veoma_obican_kreten
Mladen Covic

Član broj: 89491
Poruke: 2
..mtsns-ns.customer.sbb.co.yu.



Profil

icon Re: Problem nizovi - ispisivanje rijeci obrnuto ?27.03.2006. u 05:57 - pre 220 meseci

A onda me jos interesuje a zasto bi pravili funkciju za obrtanje stringa kada ima dovoljno informacija da se string ODSTAMPA naopacke sto je i cilj zadatka. Da unistimo orginalni podatak?!

Code:

void stampajObrnuto(char *s)
{
  char *tmp = s;
  while (*tmp) tmp++;
  tmp--;
  while (tmp != s) {
    printf("%c", *tmp);
    tmp--;
  }
  printf("%c", *tmp); 
}

void stampajObrnuto(char *s)
{
  if (*s) {
    stampajObrnuto(s++);
    printf("%c", *s);
  }
}


Normalni su ljudi, normalne su prave
Ali su prave i paralelne
Hristos razapet na paralelnim duzima - putokaz?!
 
Odgovor na temu

xeron
Sarajevo

Član broj: 25909
Poruke: 133
*.rb-146.bih.net.ba.



Profil

icon Re: Problem nizovi - ispisivanje rijeci obrnuto ?27.03.2006. u 13:19 - pre 220 meseci
Code:
#include <stdio.h>
#include <windows.h>// za koristenje system("pause")

int main ()
{
    int a,i;
    printf ("unesite broj slova");
    scanf ("%d",&a);
    char rijec [a];
    char obrnuto [a];
    for (i=0;i<=a;i++)
    {
        scanf ("%c",&rijec[i]);}
    for (i=a;i>=0;i--)
    {
        printf ("%c",rijec[i]); 
    }
    system ("pause");
    return 0;
}


Ovo je rješenje .....
if (argc > 1 && strcmp(argv[1], "-advice") == 0) {
printf("Don't Panic!n");
exit(42);
}
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.nat-pool.po.sbb.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Problem nizovi - ispisivanje rijeci obrnuto ?27.03.2006. u 14:25 - pre 220 meseci
Za system("PAUSE")dovoljan je mislim:

#include "stdlib.h"

Ne daj Boze da je potreban ceo Windows :)

 
Odgovor na temu

z@re
Zarko Bulatovic
Split

Član broj: 29849
Poruke: 443
*.cmu.carnet.hr.



+25 Profil

icon Re: Problem nizovi - ispisivanje rijeci obrnuto ?27.03.2006. u 22:57 - pre 220 meseci
I jos da napomenemo da stdlib.h header je dio ANSI C standarda, dok windows.h nije.

Uvijek koristi standardne headere naspram OS-specificnih za ovako jednostavne zadatke. To ce meni koji koristim BSD omogucit da ja copy pastam tvoj kod iz browsera i kompajliram ga, bez da moram radit preinake.

Jos cemo malo napominjat, sve mi se cini. Linija

Code:

char rijec[a];


nije dozvoljena unutar ANSI C standarda. Ovisno od kompajlera do kompajlera, moze proci ili ne. Inicijalizacija polja uvijek treba imati konstantu, a ne varijablu. Tvoj slucaj bi se rijesio ovako :

Code:

char *rijec = (char *)malloc((sizeof(char) * a)  + 1);


Dalje, vjerujem da ti ne treba varijabla za drugo polje charova, jer koristis samo jedno. Pa onda, unos mozes jednostavno rijesiti gets funkcijom, bez da bespotrebno vrtis nekakve petlje i upisujes znak po znak. Petlja za ispis je dobra, iako bi ja tu koristio putchar funkciju umjesto printf, ali moze i ovako. Moze se i izbjec da korisnik mora prvo upisati broj slova u rijeci, ali vjerujem da ti je to i neka poanta za zadatak. Dakle, napravis finu dinamicku alokaciju sa mallocom kao na primjeru gore, i jos mozes i provjerit da malloc slucajno nije vratio NULL pointer sto bi znacilo da iz nekog razloga nije uspio alocirat dovoljno memorije za tvoju rijec (nevjerujem da se ovo moze desit, ali je dobra programerska praksa). Gets funkcija ima nekakvih problema, ali uvijek mozes koristiti dobru fgets funkciju i napomenes da ti je ulaz stdin. I na kraju, kod ovog nacina kako ti upisujes znak po znak sa scanf, umjesto

Code:

scanf("%c", &rijec[i]);


koristi

Code:

scanf("%c", (rijec + i));


Ovo dodatno poboljsava kod jer umjesto dobivanja adrese nekog mjesta u polju koristimo vec gotovu adresu, koju ne treba vaditi iz nicega.

[Ovu poruku je menjao z@re dana 27.03.2006. u 23:58 GMT+1]

Q: HSP56 Micromodem nece da radi kompjuter ga prepozna a kad treba da se konektujem nece ne daje ni znaka zivota. u cemu je problem.

A: Crko mozda od grmljavine mozda od spanaca. Uglavnom baci ga u WC solju jako povuci vodu. Skupi 5e i uzmi drugi i ne postuj temu na pogresno mesto.
 
Odgovor na temu

xeron
Sarajevo

Član broj: 25909
Poruke: 133
*.rb-146.bih.net.ba.



Profil

icon Re: Problem nizovi - ispisivanje rijeci obrnuto ?28.03.2006. u 09:17 - pre 220 meseci
hvala
if (argc > 1 && strcmp(argv[1], "-advice") == 0) {
printf("Don't Panic!n");
exit(42);
}
 
Odgovor na temu

[es] :: C/C++ programiranje :: Problem nizovi - ispisivanje rijeci obrnuto ?

[ Pregleda: 4275 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.