Programa que llene arreglo de 50 numeros aleatorios entre [1 y 100] y ordenarlos descendentemente y mostrar los numeros ordenados por pantalla..
Me salen los siguentes errores.. :C
13	12	[Error] expected identifier before numeric constant
13	15	[Error] expected '{' before ';' token
13	15	[Warning] lambda expressions only available with -std=c++11 or -std=gnu++11 [enabled by default]
13	15	[Error] invalid user-defined conversion from 'main()::__lambda0' to 'int' [-fpermissive]
13	14	[Note] candidate is: main()::__lambda0::operator void (*)()() const <near match>
13	14	[Note] no known conversion for implicit 'this' parameter from 'void (*)()' to 'int'
25	15	[Error] invalid conversion from 'int' to 'int*' [-fpermissive]
8	6	[Error] initializing argument 1 of 'void ordenar(int*)' [-fpermissive]
26	16	[Error] invalid conversion from 'int' to 'int*' [-fpermissive]
9	6	[Error] initializing argument 1 of 'void imprimir(int*)' [-fpermissive]
#include <cstdio>
#include<stdlib.h>
#include<time.h>
#include<conio.h>
using namespace std;
void ordenar (int ord[]);
void imprimir (int impri[]);
	int main ()
	{
		int num=[50];
		int i=0;
		int limite_inf=1, limite_sup=100;
		srand (time(0));
		for (i=0; i<50; i++)
		{
			printf("rand ()");
			printf("Numero %d: ", i);
			printf("%d\n", num);	
		}
		
		ordenar (num);
		imprimir (num);	
			
		system ("pause");
		return 0;				
	}
	 void ordenar (int ord[])
	 {
	 	int i=0, j=0, aux=0;
	 	
	 	for (i=0; i<50; i++)
		{
			for (j=i; j<50-1; j++)
			{
				if (ord[i] < ord[j])
				{
					aux = ord[i];
					ord [i] = ord[j];
					ord [j] = aux;
				}
				
				
			}	
	
		}
	 }
	 
	 void imprimir (int impri[])
	 {
	 		int i=0;
			 for (i=0; i<50; i++)
				{
					printf ("%d" , impri [i]);
				}
					
					printf ("\n\n");
	 	
	 }	
			
			
			
				errores de linea 13
esta es la linea 13
int num=[50];
y está mal... no se hace así...
hay 2 formas
forma 1
int num[50];
forma 2(arreglo dinamico c++)
int *num=new int[50];
errores linea 8 y 9
void ordenar (int ord[]);
void imprimir (int impri[]);
 
malo...
se hace
void ordenar (int *ord);
void imprimir (int *impri);
 
error en linea 22, no puede imprimir un array en tal caso num...
no uses conio.h, a demás aquí no lo necesitas, si vas a usar las librerías de c++ usa todas de c++ si no, usa todas de c
#include <cstdio>
#include <cstdlib>
#include <ctime>
			
			
			
				Porfin!! Codigo resulto lo comparto :D 
Una duda.. porque se pone el asterisco?
void ordenar (int *ord);
void imprimir (int *impri);
#include <cstdio>
#include<stdlib.h>
#include<ctime>
#include<iostream>
using namespace std;
void ordenar(int *num);
void imprimir(int *impri);
	int main ()
	{
		int num [50], i=0;
	
		srand (time(NULL));
		printf("\nNumeros: ");
		for (i=0; i<50; i++)
		{	
			int x = rand () %100;
			num [i] = x;
			cout <<num [i]<<" ";	
		}
		
		printf ("\n\n");
		
		ordenar (num);
		imprimir (num);		
		
		system ("pause");
		return 0;				
	}
void ordenar (int num[])
{
		int i=0, j=0, aux=0;
		for (i=0; i<50; i++)
		{
			for (j=0; j<50-1; j++)
			{
				if (num[j+1] > num[j])
				{
					aux = num [j];
					num [j] = num [j+1];
					num [j+1] = aux;
				}
			}
			
		}
	
}
  void imprimir (int  impri[])
 
 {
 		int i=0;
 	printf ("\n\n");
	 	printf ("Numeros ordenados: \n");
	 	 for (i=0; i<50; i++)
	 	 {
	 		cout << impri [i]<<" ";
	 	
		}
		printf ("\n\n");
 	
 }
			
			
			
				Cita de: Jonathanxd en  6 Marzo 2015, 06:35 AM
porque se pone el asterisco?
void ordenar (int *ord);
void imprimir (int *impri);
En realidad no es necesario el cambio (es mas bien una cuestión de estilo).
Todo argumento que se declare en la forma "T nombre[N]", por ejemplo:
void ordenar (int ord[ALGUN_VALOR]);
void imprimir (int impri[ALGUN_VALOR]);Se procesa como si la declaración fuera:
void ordenar (int *ord);
void imprimir (int *impri);Ahí el asterisco indica que el argumento es un puntero, en tu caso la dirección en memoria del primer elemento del array. Revisa tu material de referencia y busca los apartados sobre punteros y arrays.
Un saludo