When I run the program it shows me the array created correctly, but the problem is that it does not command it. I do not know if it will be a problem of how I pass the arrangement as a parameter to the functions, since I am learning and it still costs me a bit that topic. Thank you very much
#include <iostream>
#include <stdlib.h>
#include <time.h>
int *generarArreglo(int size);
void OrdenaMburbujaD (int * a1);
void OrdenaMburbujaA (int * a1);
int main()
{
char op;
int *a;
a=generarArreglo(100);
if (a==NULL)
{ printf("No hya memoria suficiente para el arreglo"); }
else {
printf("Arreglo sin ordenar \n");
for (int i=0;i<=99;i++)
{ printf("%d ", a[i]);}
printf ("\n");
printf("Ingrese la letra D para ordenar el arreglo de forma Descendente \n"
"Ingrese la letra A para ordenar el arreglo de forma Ascendente \n");
op=getchar();
if (op= 'd')
{ OrdenaMburbujaD(a); }
else if (op= 'a') {OrdenaMburbujaA(a);}
printf("Arreglo ordenado \n");
for (int i=0;i<=99;i++)
{ printf("%d ", a[i]);} }
system("PAUSE");
return 0;
}
int *generarArreglo(int size)
{
int idx;
int *arr;
arr = (int *)calloc( size, sizeof( int ) );
if( arr ) {
srand( time( NULL ) ); }
for( idx = 0; idx < size; ++idx )
{arr[idx] = rand( ) % 100;}
return arr; }
void OrdenaMburbujaD (int * a1)
{
int pasada, j,almacena1;
for (pasada=0;pasada<=99;pasada++)
{ for(j=0;j<=99;j++)
{ if (a1[j]<a1[j+1])
{ almacena1=a1[j];
a1[j]=a1[j+1];
a1[j+1]=almacena1;}}}
}
void OrdenaMburbujaA (int * a1)
{
int pasada, j, almacena;
for (pasada=0;pasada<=99;pasada++)
{ for(j=0;j<=99;j++)
{ if (a1[j]>a1[j+1])
{ almacena=a1[j];
a1[j]=a1[j+1];
a1[j+1]=almacena;}}}
}