Lei mejor el comentario de soork y me equivoque en algo, no tenes que usar M
[j]= ' '; en todo el programa sino solo en:
for(i=0;i<Maxanzahl;i++){
for(j=0;j<Maxstrl;j++){
M[i][j]= ' ';
}
}
Tambien la impresion esta mal, solo basta con un for, y el formato del printf debe ser %s no %cTe dejo el codigo funcionando:
#include <stdio.h>
#include <string.h>
#define Maxstrl 50
#define Maxanzahl 100
int main(){
char x[Maxstrl]; // x no debe ser una matriz sino un array unidimensional
char str[Maxstrl];
char M[Maxanzahl][Maxstrl];
int i,j,min,m,k=0;
for(i=0;i<Maxanzahl;i++){
for(j=0;j<Maxstrl;j++){
M[i][j]= ' ';
}
}
while(fgets(str
,Maxstrl
,stdin
)!=NULL
){ k++;
}
}
for(j=0;j<k-1;j++){
for(m=0;m<k-j-1;m++){
if(strcmp(M
[m
],M
[m
+1])>0){ // faltaba las llaves del if }
}
}
// esto tenias q hacer para la impresion
for(i=0;i<k;i++){
}
return 0;
}
Para entender mejor lo que hice en el ordenamiento busca algo como: "metodo de la burbuja en C" en ingles creo q es "booble-sort"
Saludos