Ordinare array di caratteri

Pubblicità

Trigun86

Utente Attivo
Messaggi
24
Reazioni
0
Punteggio
25
Salve sto provando a scrivere un programma C che mi permetta di: prendere in input un array bidimensionale di parole ordinarli alfabeticamente e stamparli a video il codice è il seguente:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define max 30

main(){
char p[3][20]; /*2*/
int i;
int n=4;


/* Acquisisce parole da inserire nel array */

for (i=0;i<3;i++) {
printf("\nParola %d \n",i);
gets(p); /*3*/
}
printf("prova stampa accedo all'elemento in posizione 1-3:::::::%c\n",p[1][3]);
for(i=0;i<3;i++){
printf("%s\n",p);
}
char c;

while(n>1){
for(i=0; i<n-1; i++){

if(strcmp(p,p[i+1])>0){
c=p;
p=p[i+1];
p[i+1]=c;
}

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

system("PAUSE");
return 0;
}


l'errore è quello scritto in rosso, al momento della compilazione il compilatore da:incompatilbe types in assignment.
Potreste aiutarmi Grazie
 
quel pezzo di codice va modificato così
Codice:
if(strcmp(p[i],p[i+1])>0){
c=*p[i];
*p[i]=*p[i+1];
*p[i+1]=c;
}
comunque il programma non funziona lo stesso indipendentemente da questo pezzo!
 
quel pezzo di codice va modificato così
Codice:
if(strcmp(p[i],p[i+1])>0){
c=*p[i];
*p[i]=*p[i+1];
*p[i+1]=c;
}
comunque il programma non funziona lo stesso indipendentemente da questo pezzo!

Lo so infatti ho risolto, sfogliando un libro ho capito dove sbagliavo, posto per aiutare chi magari potrebbe avere il mio stesso problema :
Codice:
while(n>1){
for(i=0; i<n-1; i++){

    if(strcmp(p[i],p[i+1])>0){
    strcpy(c,p[i]);
    strcpy(p[i],p[i+1]);    
    strcpy(p[i+1],c);
        }
}
n--;
}

:ok:
 
Pubblicità
Pubblicità
Indietro
Top