Título: Errores al compilar
Publicado por: Supermanxd en 6 Marzo 2015, 04:33 am
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"); }
Título: Re: Errores al compilar
Publicado por: engel lex en 6 Marzo 2015, 04:48 am
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>
Título: Re: Errores al compilar
Publicado por: Supermanxd en 6 Marzo 2015, 06:35 am
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"); }
Título: Re: Errores al compilar
Publicado por: rir3760 en 6 Marzo 2015, 07:25 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
|