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)
| | |-+  pasar datos a una struct
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: pasar datos a una struct  (Leído 4,147 veces)
flony


Desconectado Desconectado

Mensajes: 583



Ver Perfil
pasar datos a una struct
« en: 29 Enero 2015, 04:22 am »

hola amigos hace una vida no le meto mano a c++
me darian una mano en esta parte estoy trabado
Código
  1. # include <iostream>
  2. #include <string>
  3.  
  4.  
  5. using namespace std;
  6. struct T_alumno
  7. {
  8. string nombre;
  9. float nota[2];
  10. } alumno[29];
  11.  
  12.  
  13. void inicializar();
  14.  
  15. int main()
  16. {
  17. inicializar();
  18. cin.get();
  19. return 0;
  20. }
  21.  
  22.  
  23. void inicializar()
  24. {
  25. const int limiteAlumnos =30;
  26. const int limiteNota = 3;
  27. char pasarNombre[50];
  28. float pasarNota;
  29.  
  30. for (int i = 0; i < limiteAlumnos; i++)
  31. {
  32. cout << "pasar el nombre del alumno " << endl;
  33. cin >> pasarNombre;
  34. alumno[i].nombre = pasarNombre;
  35. for (int j = 0; j < limiteNota; j++)
  36. {
  37. cout << "pasar las 3 notas " << endl;
  38. cin >> pasarNota;
  39. alumno[j].nota = pasarNota;
  40.  
  41. }
  42.  
  43. }
  44. }
***
el error
***
Citar
1>------ Operación Compilar iniciada: proyecto: maxurbalu, configuración: Debug Win32 ------
1>  main.cpp
1>c:\users\administrador\documents\visual studio 2013\projects\ver\ver\main.cpp(39): error C2440: '=' : no se puede realizar la conversión de 'float' a 'float [2]'
1>          No hay conversiones a tipos de matriz, aunque hay conversiones a referencias o punteros a matrices
========== Compilar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========


En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: pasar datos a una struct
« Respuesta #1 en: 29 Enero 2015, 07:23 am »

Código
  1. struct T_alumno
  2. {
  3. string nombre;
  4. float nota[2];
  5. } alumno[29];


Código
  1. float pasarNota;
  2. /******/
  3. alumno[j].nota = pasarNota;



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.
flony


Desconectado Desconectado

Mensajes: 583



Ver Perfil
Re: pasar datos a una struct
« Respuesta #2 en: 30 Enero 2015, 15:20 pm »

jajaja mira ese pequeño detalle ....gracias
En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
_Enko


Desconectado Desconectado

Mensajes: 538



Ver Perfil WWW
Re: pasar datos a una struct
« Respuesta #3 en: 30 Enero 2015, 15:42 pm »

No dije nada  :silbar:
Saludos.z
« Última modificación: 30 Enero 2015, 15:44 pm por _Enko » En línea

flony


Desconectado Desconectado

Mensajes: 583



Ver Perfil
Re: pasar datos a una struct
« Respuesta #4 en: 30 Enero 2015, 15:53 pm »

Código:
do
{
cout << "pasar el nombre del alumno " << endl;
cin >> pasarNombre;
alumno[limiteAlumnos-1].nombre = pasarNombre;
for (int i = 0; i < limiteNota; i++)
{
cout << "pasar las 3 notas " << endl;
cin >> pasarNota;
alumno[cuentaAlumno].nota[i] =pasarNota;
}
cout << "cantidad de alumnos ingresdos " << cuentaAlumno << endl;
cout << "quiere ingresar otro alumno? si=1; no=0" << endl;
cin >> condicion;
condicion == 1 ? cuentaAlumno = cuentaAlumno++ : cuentaAlumno;

} while (cuentaAlumno < limiteAlumnos && condicion ==1 );

le encontre la vuelta, en la parte
Código:
alumno[j].nota
iba desde alumno 0 1 y 2...en realidad es alumno n nota 0 1 y 2
En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: pasar datos a una struct
« Respuesta #5 en: 30 Enero 2015, 16:22 pm »

Código
  1. # include <iostream>
  2. struct T_alumno
  3. {
  4. string nombre;
  5. float nota[2];
  6. } alumno[29];
En C y C++ los indices inician en 0 y terminan en N-1 donde N es el numero de elementos. Si quieres un array de treinta estudiantes con tres calificaciones cada uno debes cambiar esa declaración a:
Código
  1. # include <iostream>
  2. struct T_alumno
  3. {
  4.   string nombre;
  5.   float nota[3];
  6. } alumno[30];

Código
  1. condicion == 1 ? /* ==> */ cuentaAlumno = cuentaAlumno++ /* <== */ : cuentaAlumno;
No deberías hacer eso primero porque el lenguaje no define cuando se aplicara el efecto lateral y segundo porque estas modificando dos veces el objeto. Para el caso utiliza:
Código
  1. if (condicion == 1)
  2.   cuentaAlumno++;

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
flony


Desconectado Desconectado

Mensajes: 583



Ver Perfil
Re: pasar datos a una struct
« Respuesta #6 en: 30 Enero 2015, 16:57 pm »

lo tendre en cuenta....justo estaba por preguntar otra cosa...pero capaz tengas razon
hasta aca va mi codigo
Código
  1. # include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5. struct T_alumno
  6. {
  7. string nombre;
  8. float nota[2];
  9. } alumno[2];
  10.  
  11.  
  12. void inicializar();
  13. void media();
  14.  
  15. int main()
  16. {
  17. int opcion;
  18. cout << " para cargar alumnos marque 1"<<endl;
  19. cout << "para obtener el mejor promedio marque 2"<<endl;
  20. cout << "para salir marque 3 " << endl;
  21. cout <<"que desea realizar?" << endl;
  22. cin >> opcion;
  23. if (opcion==1 || opcion==2 || opcion==3)
  24. {
  25. switch (opcion)
  26. {
  27. case 1:inicializar();
  28. case 2:media();
  29. case 3:break;
  30. }
  31. }
  32. cin.get();
  33. return 0;
  34. }
  35.  
  36.  
  37. void inicializar()
  38. {
  39. const int limiteAlumnos =3;
  40. const int limiteNota = 3;
  41. string pasarNombre;
  42. float pasarNota;
  43. int condicion, cuentaAlumno=0;
  44.  
  45. do
  46. {
  47. cout << "pasar el nombre del alumno " <<endl;
  48. cin >> pasarNombre;
  49. alumno[cuentaAlumno].nombre = pasarNombre;
  50. for (int i = 0; i < limiteNota; i++)
  51. {
  52. cout << "pasar las 3 notas " << endl;
  53. cout << "nota numero" << i << endl;
  54. cin >> pasarNota;
  55. alumno[cuentaAlumno].nota[i] =pasarNota;
  56. }
  57. cout << "cantidad de alumnos ingresdos " << cuentaAlumno << endl;
  58. cout << "quiere ingresar otro alumno? si=1; no=0" << endl;
  59. cin >> condicion;
  60. condicion == 1 ? cuentaAlumno = cuentaAlumno++ : cuentaAlumno;
  61.  
  62. } while (cuentaAlumno < limiteAlumnos && condicion ==1 );
  63.  
  64. }
  65.  
  66.  
  67. void media()
  68. {
  69. const int limiteAlumnos = 3;
  70. const int limiteNota = 3;
  71. float suma=0;
  72. float mayor=0;
  73. int posicion;
  74. float media[limiteAlumnos-1];
  75. for (int i = 0; i < limiteAlumnos; i++)
  76. {
  77. for (int j = 0; j < limiteNota; j++)
  78. {
  79. suma= alumno[i].nota[j] +suma ;
  80. }
  81. media[i] = suma / 3;
  82. }
  83. for (int k = 0; k < limiteAlumnos-1; k++)
  84. {
  85. if (media[k]>mayor)
  86. {
  87. mayor = media[k];
  88. posicion = k;
  89. }
  90. }
  91. cout << " el alumno con mejor promedio es: " << endl;
  92. cout << alumno[posicion].nombre << "y su promedio es" << mayor << endl;
  93.  
  94. }

 ***
el error
Citar
'maxurbalu.exe' (Win32): 'C:\Users\Administrador\Documents\Visual Studio 2013\Projects\maxurbalu\Debug\maxurbalu.exe' cargado. Símbolos cargados.
'maxurbalu.exe' (Win32): 'C:\Windows\SysWOW64\ntdll.dll' cargado. No se encuentra el archivo PDB o no se puede abrir.
'maxurbalu.exe' (Win32): 'C:\Windows\SysWOW64\kernel32.dll' cargado. No se encuentra el archivo PDB o no se puede abrir.
'maxurbalu.exe' (Win32): 'C:\Windows\SysWOW64\KernelBase.dll' cargado. No se encuentra el archivo PDB o no se puede abrir.
'maxurbalu.exe' (Win32): 'C:\Windows\SysWOW64\msvcp120d.dll' cargado. No se encuentra el archivo PDB o no se puede abrir.
'maxurbalu.exe' (Win32): 'C:\Windows\SysWOW64\msvcr120d.dll' cargado. No se encuentra el archivo PDB o no se puede abrir.
Primera excepción en 0x0F6C34C0 (msvcr120d.dll) en maxurbalu.exe: 0xC0000005: Infracción de acceso al escribir en la ubicación 0x00000000.
Excepción no controlada en 0x0F6C34C0 (msvcr120d.dll) en maxurbalu.exe: 0xC0000005: Infracción de acceso al escribir en la ubicación 0x00000000.

Primera excepción en 0x0F6C34C0 (msvcr120d.dll) en maxurbalu.exe: 0xC0000005: Infracción de acceso al escribir en la ubicación 0x00000000.
Excepción no controlada en 0x0F6C34C0 (msvcr120d.dll) en maxurbalu.exe: 0xC0000005: Infracción de acceso al escribir en la ubicación 0x00000000.

Primera excepción en 0x0F6C34C0 (msvcr120d.dll) en maxurbalu.exe: 0xC0000005: Infracción de acceso al escribir en la ubicación 0x00000000.
Excepción no controlada en 0x0F6C34C0 (msvcr120d.dll) en maxurbalu.exe: 0xC0000005: Infracción de acceso al escribir en la ubicación 0x00000000.

Primera excepción en 0x0F6C34C0 (msvcr120d.dll) en maxurbalu.exe: 0xC0000005: Infracción de acceso al escribir en la ubicación 0x00000000.
Excepción no controlada en 0x0F6C34C0 (msvcr120d.dll) en maxurbalu.exe: 0xC0000005: Infracción de acceso al escribir en la ubicación 0x00000000.

Primera excepción en 0x0F6C34C0 (msvcr120d.dll) en maxurbalu.exe: 0xC0000005: Infracción de acceso al escribir en la ubicación 0x00000000.
Excepción no controlada en 0x0F6C34C0 (msvcr120d.dll) en maxurbalu.exe: 0xC0000005: Infracción de acceso al escribir en la ubicación 0x00000000.

El programa '[816] maxurbalu.exe' terminó con código 0 (0x0).

foto asi se aprecia el error


se me hace que me sali del vector
« Última modificación: 30 Enero 2015, 16:59 pm por flony » En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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