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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Extraer datos tipo float de un arreglo a otro
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Extraer datos tipo float de un arreglo a otro  (Leído 1,815 veces)
leopaez

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Extraer datos tipo float de un arreglo a otro
« en: 10 Diciembre 2016, 12:33 pm »

Nuevamente, muy buenos días y muchas gracias a quienes hacen posible estos espacios, terminando mi trabajo se me presenta un nuevo inconveniente; deseo extraer de un arreglo tipo float a otro arreglo las notas menores que 3, el código compila bien, pero al ejecutarlo y querer visualizar los datos el nuevo arreglo no me muestra los datos de forma correcta, caso contrario me muestra un 1.56181e-038. Que no fue el numero que saque del otro arreglo.

Código
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <cstdio>
  4. #include <cstring>
  5.  
  6.  
  7. using namespace std;
  8.  
  9. void registrarDatos(); //Funcion para registrar los datos
  10. void mostrarDatos(); //Funcion para mostrar los datos
  11. void   estudiantesPerdieron(); //Funcion para mostrar los estudiantes que perdieron el curso
  12. void promedioNotas();     //Funcion para imprimir el articuo de mayor valor y su valor
  13.  
  14. int opcion, i, j, n;     //Declaracion de variables
  15. string *a=NULL;
  16. float *b=NULL;
  17. float *auxiliarPerdieron=NULL;
  18. int numeroPerdieron;
  19.  
  20.  
  21.  
  22.  
  23.  
  24. int main()
  25. {
  26. system("color 3f"); //Asignación color de fondo
  27.        system("CLS");       //Limpiar pantalla
  28.  
  29.  
  30.        do     //realizar mientras sea diferente de 6
  31. {
  32. system("CLS");
  33. cout<<"Programa que permite registrar N numero de estudiantes"<<endl;
  34. cout<<"con su respectiva nota final, listar los que perdieron"<<endl;
  35. cout<<"y sacar el promedio"<<endl<<endl;
  36. cout<<endl<<"OPCIONES"<<endl; //Opciones
  37. cout<<"1. REGISTRAR DATOS"<<endl;          
  38. cout<<"2. LISTAR DATOS"<<endl;
  39. cout<<"3. LISTA DE ESTUDIANTES QUE  PERDIERON EL CURSO"<<endl;
  40. cout<<"4. PROMEDIO DE NOTAS DEL CURSO"<<endl;
  41. cout<<"5. SALIR DEL PROGRAMA"<<endl<<endl;
  42. cout<<"Digite la opcion ";
  43. cin >>opcion;
  44. while(opcion>=6) //Ciclo while opciones incorrectas
  45. {
  46. cout<<"INGRESE UN NUMERO VALIDO POR FAVOR ";
  47. cin>>opcion;
  48.    }
  49.  
  50. switch(opcion) //llamadas a funciones            
  51. {
  52. case 1:
  53. system("cls"); //Limpiar pantalla
  54. registrarDatos(); //llamada a funcion registrar datos
  55.             break;
  56. case 2:
  57. system("cls"); //Limpiar pantalla
  58. mostrarDatos(); //llamada a funcion mostrar datos
  59. break;
  60. case 3:
  61. system("cls"); //Limpiar pantalla
  62. estudiantesPerdieron(); //llamada a funcion estudiantes perdieron
  63.             break;
  64. case 4:
  65. system("cls"); //Limpiar pantalla
  66. promedioNotas();    //llamada a funcion promedio de notas
  67. break;
  68. case 5:
  69. delete [] a;
  70. system("cls");
  71. exit(0);
  72.    break;
  73. }
  74.  
  75. cout<<endl;
  76. system("pause");
  77.  
  78. }
  79. while(opcion!=5);
  80. }
  81.  
  82.  
  83. void  registrarDatos()
  84. {
  85.  
  86. cout << "Por favor ingrese la cantidad de estudiantes a registrar: "<<endl;
  87. cin>>n;
  88. a = new string[n];
  89. b = new float[n];
  90. for(i = 0; i < n; i++)
  91.  
  92.  {
  93.          cout <<endl<<"******* Estudiante " << i + 1 << "********:"<<endl;
  94.  cout << "Nombre: ";
  95.          fflush(stdin);
  96.          getline (cin, a[i]);
  97.      cout << "Nota final: ";
  98.      cin>>b[i];
  99.  
  100.       }
  101. }
  102.  
  103.  
  104. void mostrarDatos ()
  105. {  
  106. cout << "La informacion de los estudiantes  registrados son los siguientes:"<<endl;
  107.        for(i = 0; i < n; i++)
  108.     {
  109.          cout << "\n******* Estudiante " << i + 1 << "********:\n";
  110.          cout << "Nombre:" <<a[i]<<endl;
  111.          cout << "Nota final: " <<b[i]<<endl;
  112.       }
  113.  
  114.    }
  115.  
  116.  
  117.       void estudiantesPerdieron ()
  118. {  
  119.  
  120.   cout << "La informacion de los estudiantes  que perdieron la materia son los siguientes:"<<endl;
  121.       cout << "Los estudiantes registrados son: "<<n<<" ";
  122. auxiliarPerdieron = new float[n];
  123. numeroPerdieron=0;
  124.        for(i = 0; i < n; i++)
  125.     {
  126.          if (b[i]<3)
  127.          {
  128.  auxiliarPerdieron[numeroPerdieron]=b[i];
  129.  numeroPerdieron++;
  130.  }
  131.  
  132.       }
  133.       cout<<"perdieron "<<numeroPerdieron<<" estudiantes";
  134.       auxiliarPerdieron = new float[numeroPerdieron];
  135.       for(j = 0; j < numeroPerdieron; j++)
  136.  
  137.  {
  138.          cout <<endl<<"******* Estudiantes que perdieron ********:"<<endl;
  139.  
  140.      cout << "Nota final: " <<auxiliarPerdieron[j]<<endl;
  141.  
  142.       }
  143.  
  144.  
  145.  
  146.    }
  147.  
  148.  
  149.  
  150.       void promedioNotas()
  151. {
  152.   cout << "En construccion:"<<endl;
  153. }
  154.  

Tambien si me pueden colaborar no se como estraer las notas menores que 3 con sus respectivos estudiantes.


En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Extraer datos tipo float de un arreglo a otro
« Respuesta #1 en: 10 Diciembre 2016, 13:42 pm »

La línea 134 es la culpable. Vuelves a adquirir una zona de memoria para esa variable perdiendo la que tenía los datos cargados.


En línea

leopaez

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Extraer datos tipo float de un arreglo a otro
« Respuesta #2 en: 10 Diciembre 2016, 17:49 pm »

Estas en lo cierto, Muchisimas gracias !!!!!!!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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