Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicit e servizi in linea con il tuo account. 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: 5475
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 ...
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: 5475
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 ...
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