Dott v3nom (Normal User)
Newbie
Messaggi: 3
Iscritto: 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??
|
|
()
Newbie
Messaggi:
Iscritto:
|
Che errore ti da?
|
|
()
Newbie
Messaggi:
Iscritto:
|
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 |
Ormai i compilatori mi pare diano errore per questo, vogliono il tipo esplicitato, metti per essere corretto
Codice sorgente - presumibilmente C/C++ |
int main(int argv, char **argc)
|
e un
Codice sorgente - presumibilmente C/C++ |
alla fine
poi
Codice sorgente - presumibilmente C/C++ |
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++ |
if (strcmp(vettstring[d],vettstring[d+1])>0;){
|
il ; non ci sta
Codice sorgente - presumibilmente Plain Text |
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.
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6403
Iscritto: 03/01/2010
|
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à. |
|
Dott v3nom (Normal User)
Newbie
Messaggi: 3
Iscritto: 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*)
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6403
Iscritto: 03/01/2010
|
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à. |
|
Dott v3nom (Normal User)
Newbie
Messaggi: 3
Iscritto: 29/01/2017
|
funziona
grazie a tutti siete stati gentilissimi
|
|
()
Newbie
Messaggi:
Iscritto:
|
Prego
|
|
()
Newbie
Messaggi:
Iscritto:
|
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).
|
|