Dev - C++ - Programa que ignora un if ... (Problema del compilador?)

 
Vista:
sin imagen de perfil
Val: 33
Ha disminuido su posición en 4 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Programa que ignora un if ... (Problema del compilador?)

Publicado por Jorge (24 intervenciones) el 22/07/2021 20:29:24
Hola bueno estoy haciendo un codigo para ordenar alfabeticamente unas cadenas, aun estoy comenzando osea que estoy probando el programa con palabras sencillas, el problema ocurre que el programa que hago literalmente ignora un if y hace algo que no deberia hacer, aca lo explico

las cadenas de ejemplo que meti fueron HOLA, ADIOS Y COMO (son 3)

#include <stdio.h>
#include <string.h>
// PROGRAMA ORDENAR CADENAS DE TEXTO
void comparacion(char CAD[][50],int LUGAR_1,int LUGAR_2);
main()
{
char CADENAS[50][50];
int N_CADENAS=0;

printf("INGRESA EL NUMERO DE CADENAS QUE METERAS: \n ");
scanf("%d",&N_CADENAS); fflush(stdin);

for(int A=0;A<N_CADENAS;A++){
printf("INGRESA LA CADENA %d: \n \t",A+1);
gets(CADENAS[A]);
}

// SE ORDENAN POR SELECCION

for(int P=0;P<N_CADENAS-1;P++){
for(int Q=P+1;Q<N_CADENAS;Q++){
comparacion(CADENAS,P,Q); // FUNCION ENTREGA CADENAS ORDENADAS
}
}
printf("\n \t LAS CADENAS ULT SON: \n");
for(int X=0;X<N_CADENAS;X++) puts(CADENAS[X]);
}

void comparacion(char CAD[][50],int LUGAR_1,int LUGAR_2){
int cta=0;
char AUX_CAD[50];
// AQUI OCURRE EL PROBLEMA, LA SEGUNDA VEZ QUE VIENE AQUI
// CAD[LUGAR_1][cta] ES IGUAL A 'A' Y CAD[LUGAR_2][cta]= 'C'
// ENTONCES A > C NO SE CUMPLE Y AUN ASI ENTRA EL IF

while(1){
if(CAD[LUGAR_1][cta] > CAD[LUGAR_2][cta]){
strcpy(AUX_CAD,CAD[LUGAR_1]);
strcpy(CAD[LUGAR_1],CAD[LUGAR_2]);
strcpy(CAD[LUGAR_2],AUX_CAD);
break;
}
if(CAD[LUGAR_1][cta]=='\0'&&CAD[LUGAR_2][cta]=='\0') break;
if(CAD[LUGAR_1][cta]=='\0'&&CAD[LUGAR_1][cta]!='\0') break;
else if(CAD[LUGAR_1][cta]!='\0'&&CAD[LUGAR_1][cta]=='\0'){
strcpy(AUX_CAD,CAD[LUGAR_1]);
strcpy(CAD[LUGAR_1],CAD[LUGAR_2]);
strcpy(CAD[LUGAR_2],AUX_CAD);
break;
}
cta++;
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder