#include "stdafx.h" //es un operador del preprocesador //funcion de ordenamiento de un arreglo de enteros void burbuja(int a[], int dima) { int i; bool desorden; do { desorden = false; for (i = 0; i < dima - 1; i++) { // recorrido de pares sucesivos if (a[i] > a[i + 1]) { // si se detectó el hecho de datos desordenados… desorden = true; // es para comunicar al 'while' // que hay que seguir ordenando int aux = a[i]; a[i] = a[i + 1]; a[i + 1] = aux; } } } while (desorden/*repetir mientras hay desorden*/); } //funcion de ordenamiento de cadena void burbuja(char b[]) { bool desorden; do { desorden = false; //antes de entrar al siguiente ciclo, supongamos // que el arreglo ya es ordenado int i = 0; while (b[i] != '\0' && b[i + 1] != '\0') { //un recorrido de pares sucesivos if (b[i] > b[i + 1]) { // si se detecto el hecho de datos desordenados desorden = true; // a traves de ese estamos mandando una senhal // al 'do...while' exterior que hay que seguir ordenando //intercambio de b[i] con b[i+1]: char aux = b[i]; b[i] = b[i + 1]; b[i + 1] = aux; } i++; } } while (desorden/*repetir mientras hay desorden*/); } #define N 80 int main() { char b[N], i; /*adquizicion de cadena de literales*/ puts("introduce un texto menor de 80 simbolos"); gets_s(b); puts(b); //estado actual de la cadena /*ordenar la cadena*/ burbuja(b); /*imprimir cadena ordenada*/ printf("cadena b[] ordenada: \n"); puts(b); return 0; }