josecarlosgutierrez2002@gmail.com

 avatar
Jose20025
c_cpp
3 years ago
3.2 kB
2
Indexable
/*Escribir un programa en C++que permita al usuario ingresas 16 caracteres en una 
matriz 4x4, luego, mostrar dicha matriz de forma cuadrada, y, ordenadar la primera y 
última fila alfabéticamente. También mostrar cuántas letras "a" ingresó el usuario.*/

#include <iostream>

using namespace std;

char matriz[4][4];

void rellenarMatriz();
void mostrarMatriz();
void ordenar(); // Esta no la uso porque es para ordenar TODA la matriz
void ordenarprimultfila(); // Esta solo ordena la primera y la ultima fila, tal como pide el ejercicio

int main()
{
    rellenarMatriz();
    cout << endl;
    mostrarMatriz();
    ordenarprimultfila();
    cout << endl;
    mostrarMatriz();
    cout << endl;
    return 0;
}

void rellenarMatriz()
{
    for (int i = 0; i < 4; i++)
    {
        for (int j = 0; j < 4; j++)
        {
            cout << "[" << i << "][" << j << "]: ";
            cin >> matriz[i][j];
        }
    }
}

void mostrarMatriz()
{
    cout << endl;
    for (int i = 0; i < 4; i++)
    {
        for (int j = 0; j < 4; j++)
        {
            cout << matriz[i][j] << " ";
        }
        cout << endl;
    }
}

void ordenar()
{
    char vector[16];
    int aux = 0;
    char aux2;

    for (int i = 0; i < 4; i++)
    {
        for (int j = 0; j < 4; j++)
        {
            vector[aux] = matriz[i][j];
            aux++;
        }
    }

    for (int i = 0; i < 16; i++)
    {
        for (int j = 0; j < 15; j++)
        {
            if (vector[j] > vector[j + 1])
            {
                aux2 = vector[j];
                vector[j] = vector[j + 1];
                vector[j + 1] = aux2;
            }
        }
    }

    aux = 0;

    for (int i = 0; i < 4; i++)
    {
        for (int j = 0; j < 4; j++)
        {
            matriz[i][j] = vector[aux];
            aux++;
        }
    }
}

void ordenarprimultfila()
{
    char vectorprim[4], vectorult[4], aux2;
    int aux = 0, auxx = 0;

    for (int i = 0; i < 4; i++)
    {
        for (int j = 0; j < 4; j++)
        {
            if (i == 0)
            {
                vectorprim[aux++] = matriz[i][j];
            }

            if (i == 3)
            {
                vectorult[auxx++] = matriz[i][j];
            }
        }
    }

    for (int i = 0; i < 4; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            if (vectorprim[j] > vectorprim[j + 1])
            {
                aux2 = vectorprim[j];
                vectorprim[j] = vectorprim[j + 1];
                vectorprim[j + 1] = aux2;
            }

            if (vectorult[j] > vectorult[j + 1])
            {
                aux2 = vectorult[j];
                vectorult[j] = vectorult[j + 1];
                vectorult[j + 1] = aux2;
            }
        }
    }

    aux = 0;
    auxx = 0;

    for (int i = 0; i < 4; i++)
    {
        for (int j = 0; j < 4; j++)
        {
            if (i == 0)
            {
                matriz[i][j] = vectorprim[aux++];
            }

            if (i == 3)
            {

                matriz[i][j] = vectorult[auxx++];
            }
        }
    }
}