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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


  Mostrar Temas
Páginas: 1 [2]
11  Programación / Programación C/C++ / Consulta - Punteros en: 12 Diciembre 2018, 16:59 pm
Buenas, otra vez yo! Necesito me aclaren esto, porque la verdad es que no entiendo para qué debería hacer la función que me están pidiendo, a ver si me pueden esclarecer un poco.
Consigna:
Código
  1. Escriba una funcion busca_mayor() que permita buscar el mayor elemento de un arreglo de structs segun diferentes criterios.
  2. La funcion debe recibir como argumentos el arreglo de structs de tipo alumno, el tamanio del mismo, y un puntero a otra funcion que utilizara para comparar dos elementos de tipo alumno y saber cual es el mayor de ellos.
  3. struct alumno {
  4. char nombre[50];
  5. int dni, edad, calificacion;
  6. };
  7. Implemente funciones que comparen dos alumnos segun su dni, segun su edad,
  8. segun su calificacion, y segun su nombre alfabeticamente, y genere un programa cliente que permita ingresar los datos de N alumnos y buscar el mayor segun el
  9. criterio que el usuario seleccione mediante un menu.

Esto fue lo que hice yo:  //No quiero que me hagan los ejercicios, solo que me ayuden en las dudas que tengo, así puedo terminar de comprenderlos, sino nunca voy a poder razonarlos si me los hacen
Código
  1. #include <iostream>
  2. using namespace std;
  3. struct alumno {
  4. char nombre[50];
  5. int dni, edad, calificacion;
  6. };
  7. alumno Busca_mayor(alumno a[], int size);
  8. alumno Compara_nombre(alumno a[], int size);
  9. alumno Compara_dni(alumno a[], int size);
  10. alumno Compara_edad(alumno a[], int size);
  11. alumno Compara_calificacion(alumno a[], int size);
  12. int main(int argc, char *argv[]) {
  13. alumno *A=nullptr; int size;
  14. /*Carga del arreglo*/
  15. ....
  16. ....
  17. /*Ejemplo de seleccion de funcion*/
  18. switch(op){
  19. case 1:
  20. alumno aux=Compara_nombre(A,size);
  21. cout<<"El mayor es: "<<aux.nombre; //Solo es un ejemplo...
  22. case 2:
  23. case 3:
  24. case 4:
  25. default:
  26. }
  27.  
  28. return 0;
  29. }
  30. /*Como deberia usar esta funcion, no entiendo, si ya con las otras
  31. funciones ya puedo obtener el mayor de los alumnos, cual es la funcion que cumple?*/
  32. alumno Busca_mayor(alumno a[], int size, int *p){ //Como usaria el tercer argumento? no entiendo
  33.  
  34. }
  35. alumno Compara_nombre(alumno a[], int size){
  36. alumno aux;
  37. for(int i=0;i<size;i++) {
  38. if(a[i].nombre<a[i+1].nombre){
  39. aux=a[i+1];
  40. }
  41. }
  42. return aux;
  43. }
  44. alumno Compara_dni(alumno a[], int size){
  45. alumno aux;
  46. for(int i=0;i<size;i++) {
  47. if(a[i].dni<a[i+1].dni){
  48. aux=a[i+1];
  49. }
  50. }
  51. return aux;
  52. }
  53. alumno Compara_edad(alumno a[], int size){
  54. alumno aux;
  55. for(int i=0;i<size;i++) {
  56. if(a[i].edad<a[i+1].edad){
  57. aux=a[i+1];
  58. }
  59. }
  60. return aux;
  61. }
  62. alumno Compara_calificacion(alumno a[], int size){
  63. alumno aux;
  64. for(int i=0;i<size;i++) {
  65. if(a[i].calificacion<a[i+1].calificacion){
  66. aux=a[i+1];
  67. }
  68. }
  69. return aux;
  70. }
12  Programación / Programación C/C++ / Cómo eliminar un elemento de un array dinámico - CONSULTA en: 11 Diciembre 2018, 21:26 pm
Buenas a todos, quería saber cómo podría eliminar un dato repetido en un arreglo dinámico, lo primero que hice fue ordenarlo de menor a mayor, para que los valores repetidos quedaran juntos, el tema es, cómo debería utilizar un nuevo puntero para que éste sólo copie los valores no repetidos.
Ya le busqué la vuelta,pero siempre me muestra los mismos valores, no quita los repetidos, tampoco se reduce mi nuevo vector.

13  Programación / Programación C/C++ / Error lógico cuando compilo ejercicio - CONSULTA en: 10 Diciembre 2018, 15:06 pm
Buenas a todos, les adjunto aquí el código que hice, tenía que re-dimensionar un puntero, tal que, al usar esa función mi puntero se modifique con su nuevo tamaño y siga manteniendo los valores antiguos más los nuevos.
Si me pueden explicar lo que estoy haciendo mal, sería de gran ayuda, así puedo entenderlo  ;D
Aquí el código:

Código
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4. using namespace std;
  5. int *Redimensionar(int *p,int c_adicionales, int _tam_de_p);
  6. int main(int argc, char *argv[]) {
  7. srand(time(0));
  8. int *x=nullptr,n;
  9. cout<<"ingrese el tamanio del arreglo"<<endl;
  10. cin>>n;
  11. x=new int [n];
  12. for(int i=0;i<n;i++) {
  13. x[i]=rand()%200;
  14. }
  15. for(int i=0;i<n;i++) {
  16. cout<<x[i]<<" ";
  17. }
  18. cout<<endl;
  19. for(int i=0;i<n+2;i++) {
  20. delete []x;
  21. }
  22. int ceros;
  23. cout<<"Ingrese la nueva cantidad: "; cin>>ceros;
  24. x=Redimensionar(x,ceros,n); //Por que me da basura en los dos primeros valores?
  25. for(int i=0;i<n+ceros;i++) {
  26. cout<<x[i]<<" ";
  27. }
  28. return 0;
  29. }
  30.  
  31.  
  32. int *Redimensionar(int *p, int c_adicionales, int _tam_de_p){
  33. int *aux=nullptr; int _tam=_tam_de_p+c_adicionales;
  34. aux=new int [_tam];
  35. for(int i=0;i<_tam_de_p;i++) {
  36. aux[i]=p[i];
  37. }
  38. for(int i=_tam_de_p+1;i<_tam;i++) {
  39. aux[i]=0;
  40. }
  41. return aux;
  42. }
14  Programación / Programación C/C++ / Problemas para mostrar un vector lineal dinámico en: 7 Diciembre 2018, 02:36 am
Buenas, aquí le dejo el código que hice, tenía que generar un arreglo lineal dinámico de N elementos con valores al azar, mi problema es que no puedo:
1) Ver los valores generados al azar, no se qué esta mal.
2) Tampoco me funciona la función "Mayor_elemento", supongo porque el arreglo no se cargó.
Me ayudaría mucho si me resaltan dónde me estoy equivocando para entender el error.
Gracias.
Aquí el código:
Código
  1. [b]int Mayor_elemento(int *p,int _tamanio);
  2. void Cargar_puntero(int *p, int _tamanio);
  3. int main(int argc, char *argv[]) {
  4. srand(time(0));
  5. int *x,tamanio;
  6. x=nullptr;
  7. cout<<"Ingrese el tamanio del puntero"<<endl;
  8. cin>>tamanio;
  9. Cargar_puntero(x,tamanio);
  10. for(int i=0;i<tamanio;i++) { //Para ver los valores ingresados al azar
  11. cout<<x[i]<<" ";
  12. }
  13. cout<<endl;
  14. cout<<Mayor_elemento(x,tamanio)<<endl;
  15. for(int i=0;i<tamanio;i++) {
  16. delete [] x;
  17. }
  18. return 0;
  19. }
  20.  
  21. void Cargar_puntero(int *p, int _tamanio){
  22. p=new int [_tamanio];
  23. for(int i=0;i<_tamanio;++i) {
  24. p[i]=rand()%1500;
  25. }
  26. }
  27.  
  28. int Mayor_elemento(int *p,int _tamanio){
  29. int aux=0;
  30. for(int i=0;i<_tamanio;i++) {
  31. if(p[i]>aux){
  32. aux=p[i];
  33. }
  34. }
  35. return aux;
  36. }
  37. [/b]
Páginas: 1 [2]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines