elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Errores al compilar
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Errores al compilar  (Leído 3,034 veces)
Supermanxd

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Errores al compilar
« 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

Código
  1. 13 12 [Error] expected identifier before numeric constant
  2. 13 15 [Error] expected '{' before ';' token
  3. 13 15 [Warning] lambda expressions only available with -std=c++11 or -std=gnu++11 [enabled by default]
  4. 13 15 [Error] invalid user-defined conversion from 'main()::__lambda0' to 'int' [-fpermissive]
  5. 13 14 [Note] candidate is: main()::__lambda0::operator void (*)()() const <near match>
  6. 13 14 [Note] no known conversion for implicit 'this' parameter from 'void (*)()' to 'int'
  7. 25 15 [Error] invalid conversion from 'int' to 'int*' [-fpermissive]
  8. 8 6 [Error] initializing argument 1 of 'void ordenar(int*)' [-fpermissive]
  9. 26 16 [Error] invalid conversion from 'int' to 'int*' [-fpermissive]
  10. 9 6 [Error] initializing argument 1 of 'void imprimir(int*)' [-fpermissive]
  11.  

Código
  1. #include <cstdio>
  2. #include<stdlib.h>
  3. #include<time.h>
  4. #include<conio.h>
  5.  
  6. using namespace std;
  7.  
  8. void ordenar (int ord[]);
  9. void imprimir (int impri[]);
  10.  
  11. int main ()
  12. {
  13. int num=[50];
  14. int i=0;
  15. int limite_inf=1, limite_sup=100;
  16. srand (time(0));
  17.  
  18. for (i=0; i<50; i++)
  19. {
  20. printf("rand ()");
  21. printf("Numero %d: ", i);
  22. printf("%d\n", num);
  23. }
  24.  
  25. ordenar (num);
  26. imprimir (num);
  27.  
  28. system ("pause");
  29. return 0;
  30. }
  31.  
  32. void ordenar (int ord[])
  33. {
  34. int i=0, j=0, aux=0;
  35.  
  36. for (i=0; i<50; i++)
  37. {
  38. for (j=i; j<50-1; j++)
  39. {
  40. if (ord[i] < ord[j])
  41. {
  42. aux = ord[i];
  43. ord [i] = ord[j];
  44. ord [j] = aux;
  45. }
  46.  
  47.  
  48. }
  49.  
  50. }
  51. }
  52.  
  53. void imprimir (int impri[])
  54. {
  55. int i=0;
  56. for (i=0; i<50; i++)
  57. {
  58. printf ("%d" , impri [i]);
  59. }
  60.  
  61. printf ("\n\n");
  62.  
  63. }


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Errores al compilar
« Respuesta #1 en: 6 Marzo 2015, 04:48 am »

errores de linea 13

esta es la linea 13
Código
  1. int num=[50];

y está mal... no se hace así...

hay 2 formas
forma 1
Código
  1. int num[50];

forma 2(arreglo dinamico c++)
Código
  1. int *num=new int[50];

errores linea 8 y 9
Código
  1. void ordenar (int ord[]);
  2. void imprimir (int impri[]);
  3.  

malo...

se hace
Código
  1. void ordenar (int *ord);
  2. void imprimir (int *impri);
  3.  


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
Código
  1. #include <cstdio>
  2. #include <cstdlib>
  3. #include <ctime>


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Supermanxd

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Re: Errores al compilar
« Respuesta #2 en: 6 Marzo 2015, 06:35 am »

Porfin!! Codigo resulto lo comparto :D
Una duda.. porque se pone el asterisco?

Código
  1. void ordenar (int *ord);
  2. void imprimir (int *impri);

Código
  1. #include <cstdio>
  2. #include<stdlib.h>
  3. #include<ctime>
  4. #include<iostream>
  5.  
  6. using namespace std;
  7.  
  8. void ordenar(int *num);
  9. void imprimir(int *impri);
  10.  
  11. int main ()
  12. {
  13. int num [50], i=0;
  14.  
  15. srand (time(NULL));
  16.  
  17. printf("\nNumeros: ");
  18. for (i=0; i<50; i++)
  19. {
  20. int x = rand () %100;
  21. num [i] = x;
  22. cout <<num [i]<<" ";
  23. }
  24.  
  25. printf ("\n\n");
  26.  
  27. ordenar (num);
  28. imprimir (num);
  29.  
  30. system ("pause");
  31. return 0;
  32. }
  33.  
  34.  
  35. void ordenar (int num[])
  36.  
  37. {
  38. int i=0, j=0, aux=0;
  39. for (i=0; i<50; i++)
  40. {
  41. for (j=0; j<50-1; j++)
  42. {
  43. if (num[j+1] > num[j])
  44. {
  45. aux = num [j];
  46. num [j] = num [j+1];
  47. num [j+1] = aux;
  48. }
  49. }
  50.  
  51. }
  52.  
  53. }
  54.  
  55.  void imprimir (int  impri[])
  56.  
  57. {
  58. int i=0;
  59. printf ("\n\n");
  60. printf ("Numeros ordenados: \n");
  61. for (i=0; i<50; i++)
  62. {
  63. cout << impri [i]<<" ";
  64.  
  65. }
  66. printf ("\n\n");
  67.  
  68. }
  69.  
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Errores al compilar
« Respuesta #3 en: 6 Marzo 2015, 07:25 am »

porque se pone el asterisco?

Código
  1. void ordenar (int *ord);
  2. 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:
Código
  1. void ordenar (int ord[ALGUN_VALOR]);
  2. void imprimir (int impri[ALGUN_VALOR]);
Se procesa como si la declaración fuera:
Código
  1. void ordenar (int *ord);
  2. 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
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines