PUBLICIDAD


Ordenación alfabética en Arreglos (Arrays) - Programación en C


Introducción

En este artículo analizaremos un ejercicio de programación en lenguaje C sobre cómo ordenar un arreglo de varios renglones en forma alfabética. Esto es algo muy utilizado en una gran cantidad de programas, por ejemplo, en una base de datos con nombres guardados, ya que en ocasiones se nos solicita ordenarlos alfabéticamente.

Marco teórico

strcmp: Función que sirve para comparar dos cadenas de caracteres, si las cadenas son iguales te devolverá un “0”, si la primer cadena es menor que la segunda devolverá un número negativo y finalmente si la primer cadena es mayor que la segunda devolverá un numero positivo. Si deseas saber más sobre esta función puedes visitar este artículo: Comparación de cadenas con función STRCMP.

Ejercicio

Realizar un programa en el que solicitemos ingresar 5 nombres de máximo 10 caracteres, una vez ingresados este debe ordenarlos alfabéticamente. Ya que sea procesada esta información, deberá mostrarlos de manera ordenada.

Diagrama de flujo

Ordenación alfabética en Arreglos (Arrays) - 1


Publicidad


Programa

Código:

/* Ordenación en Arreglos - Por Solución Ingenieril*/
#include <stdio.h> /* Declaración librerías*/
#include <stdlib.h>
#include <string.h>

int main(){
	int ciclo_A,ciclo_B; //Ciclos que ayudaran a ordenar el arreglo
	char nombre[5][10]; //Arreglo que guardara los nombres
	char aux[20]; //Vector auxiliar que guardara nombres temporalmente
	
	//Ciclo en el que solicitamos los nombres a ingresar
	for(ciclo_A=0;ciclo_A<5;ciclo_A++){
		printf("Ingresa un nombre: ");
		scanf("%s",&nombre[ciclo_A]);
	} 
	
	
	for(ciclo_A=1;ciclo_A<6;ciclo_A++) //Ciclo que se repetirá 5 veces para ordenar cada nombre
  		for(ciclo_B=0;ciclo_B<5-ciclo_A;ciclo_B++) //Ciclo que ordenara un nombre, se va restando pues en cada vuelta queda ordenado el ultimo nombre
    		 if(strcmp(nombre[ciclo_B],nombre[ciclo_B+1])>0) //Si el nombre actual es mayor al siguiente nombre...
        	{
        		strcpy(aux,nombre[ciclo_B]); //Guardamos el nombre actual en Aux
        		strcpy(nombre[ciclo_B],nombre[ciclo_B+1]); //Pasamos el nombre siguiente al actual
        		strcpy(nombre[ciclo_B+1],aux); //Pasamos el Aux al siguiente
    	    }
    	    
	printf("\n \n---- NOMBRES ORDENADOS ---- \n");
	//Mostramos los nombres ordenados
	for(ciclo_A=0;ciclo_A<5;ciclo_A++){
		printf("%s \n",nombre[ciclo_A]);
	} 
	
	return 0;		
}

Resultados

Ordenación alfabética en Arreglos (Arrays) - 2

Conclusión

En este ejercicio analizamos como utilizar la función “strcmp” para ordenar un arreglo en forma alfabética, además, mostramos como sería la representación gráfica de este programa, pudiendo así analizar el manejo de arreglos y ciclos anidados en un diagrama de flujo. Este tipo de programas es muy útiles a la hora de manejar bases de datos, en donde queremos ordenar alfabéticamente, por ejemplo, los nombres ingresados.


Te podria interesar...




Agregar comentario
1500
Ingresa la tercera letra de la palabra ¨Integral¨.
Comentarios
(0)
No hay comentarios todavía ¡Sé el primero en comentar!

©2017-2020 Solución Ingenieril. Todos los derechos reservados