Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - ordinamento stringhe.
Forum - C/C++ - ordinamento stringhe.

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Dott v3nom (Normal User)
Newbie


Messaggi: 3
Iscritto: 29/01/2017

Segnala al moderatore
Postato alle 10:14
Domenica, 29/01/2017
Salve a tutti.
sono nuovo di questa pagina e mi sto approcciando da poco alla programmazione da autodidatta.
detto questo, vorrei implementare un algoritmo che ordini delle stringhe in modo alfabeticamente crescente usando un bubble sort come algoritmo di ordinamento, diciamo che ci ho provato, ma il risultato è questo:

#include <stdio.h>
#include <STRING.H>    
#include <conio.h>

main()
{
      int i,n,c,d,e;
      
      char temp[50];
      char vettstring[n][50];
      
      e=0;
      
      // inserimento stringhe da parte dell'utente
      printf("quante stringhe vuoi inserire?");
      scanf("%d",&n);
      
      for(i=0;i<n;i++)
      {
                      printf("inserisci un numero");
                      scanf("%s",vettstring);
      }
      
      for(i=0;i<4;i++)
      
      {
                      printf("%s\n",vettstring);
                      
                      
      }

// bubble sort

  for (c = 0 ; c < ( n - 1 ); c++)
  {
    for (d = 0 ; d < n - c - 1; d++)
    {
      if (strcmp(vettstring[d],vettstring[d+1])>0;)
      {
        strcpy (temp[e],vettstring[d]);
        strcpy (vettstring[d],vettstring[d+1]);
        strcpy (vettstring[d+1],temp[e]);
        e++;
      }
    }
  }

// stampa stringhe ordinate

for(i=0;i<n;i++)
      {
                      printf("\n %s", vettstring);
                      
      }



getch();

}

non so perchè il programma non compila, ma logicamente quadra??



PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 10:57
Domenica, 29/01/2017
Che errore ti da?

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 10:59
Domenica, 29/01/2017
Provo io a darti una risp:
Prima che ambiente di lavoro usi?
Che errori hai?
[P:S: utilizza i tag CODE]


Codice sorgente - presumibilmente Plain Text

  1. main()



Ormai i compilatori mi pare diano errore per questo, vogliono il tipo esplicitato, metti per essere corretto

Codice sorgente - presumibilmente C/C++

  1. int main(int argv, char **argc)



e un

Codice sorgente - presumibilmente C/C++

  1. return 0;



alla fine

poi
Codice sorgente - presumibilmente C/C++

  1. char vettstring[n][50];



Non credo puoi semplicemente creare un vettore in questo modo. Il compilatore deve saperlo prima l'eatta dimensione da allocare. Non è consentito


Codice sorgente - presumibilmente C/C++

  1. if (strcmp(vettstring[d],vettstring[d+1])>0;){


il ; non ci sta


Codice sorgente - presumibilmente Plain Text

  1. strcpy( temp[e] , vettstring[d] );



et simila, temp è una stringa, e tu stai prendendo un carattere della stringa, vettstring è un "vettore" di stringhe, e tu sta prendendo un intera stringa.
Non puoi copiare una stringa nel posto destinato ad un carattere,
Se trovo altro posto.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 11:04
Domenica, 29/01/2017
DEVI usare i tag CODE altrimenti il codice è illeggibile.

E comunque, se hai errori in compilazione, prima devi correggerli.


Ultima modifica effettuata da nessuno il 29/01/2017 alle 11:10


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Dott v3nom (Normal User)
Newbie


Messaggi: 3
Iscritto: 29/01/2017

Segnala al moderatore
Postato alle 11:17
Domenica, 29/01/2017
grazie a tutti quanti mi avete risposto :)

io sto lavorando con il dev 4.9.9.2

gli errori che mi dà sono:

in function 'int main()'
invalid conversion from char to char
initializing argument 1 of char strcpy (char*, const char*)



PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 11:33
Domenica, 29/01/2017
Il messaggio è un po' diverso (char to char non ha senso) e comunque riguarda quello che ti è stato detto della variabile

temp

che è un semplice array di char e quindi non devi scrivere

temp[e]

nella strcpy ma semplicemente

temp


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Dott v3nom (Normal User)
Newbie


Messaggi: 3
Iscritto: 29/01/2017

Segnala al moderatore
Postato alle 12:32
Domenica, 29/01/2017
funziona :)

grazie a tutti siete stati gentilissimi

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 13:07
Domenica, 29/01/2017
Prego:hail:

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 14:06
Domenica, 29/01/2017
Di nulla,
Comunque, un consiglio, evita il dev 4.9.9.2 .
Ha dei bug e non è aggiornato da decenni (l'ultima versione mi pare del 2005).
Usa code::block(ottimo se usi pure linux, infatti è multipiattaforma) oppure Visual Studio (la versione community è free).

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo