Oppure

Loading
29/01/17 9:14
Dott v3nom
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[i]);
}

for(i=0;i<4;i++)

{
printf("%s\n",vettstring[i]);


}

// 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[i]);

}



getch();

}

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


aaa
29/01/17 9:57
Che errore ti da?
29/01/17 9:59
Provo io a darti una risp:
Prima che ambiente di lavoro usi?
Che errori hai?
[P:S: utilizza i tag CODE]


main() 


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

int main(int argv, char **argc)


e un

return 0;


alla fine

poi
 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


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


il ; non ci sta


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.
29/01/17 10:04
nessuno
DEVI usare i tag CODE altrimenti il codice è illeggibile.

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

Ultima modifica effettuata da nessuno 29/01/17 10: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à.
29/01/17 10:17
Dott v3nom
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*)


aaa
29/01/17 10:33
nessuno
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à.
29/01/17 11:32
Dott v3nom
funziona :)

grazie a tutti siete stati gentilissimi
aaa
29/01/17 12:07
Prego:hail: