Pregunta:
¿AYUDA C++ ¿¿¿Por qué no me sale el ARRAY, sale un error al almacenar en el array?
Miguelitto
2010-02-22 15:29:07 UTC
Este es el poblema que debe mostrar una lista de alumnos y su ESTADO o sea aprobado o desaprobado:

#include
#include
void main()
{ int n,i;
char nombre[50];
char estado[50];
int nota[10];
cout<<"Cantidad de alumnos:";
cin>>n;
for(i=1;i<=n;i++)
{
cout<<"Digitar nombre del alumno:";
cin>>nombre[i];
cout<<"Ingresar nota:";
cin>>nota[i];
if(nota[i]>=11)
{
estado[i]= "aprobado";
}
else
{
estado[i]="'desaprobado";
}
}
for(i=1;i<=n;i++)
{
cout<<"El alumno "<}
getch();
}


El error me sale aquí en la última parte => estado[i]= "aprobado"; :
if(nota[i]>=11)
{
estado[i]= "aprobado";
}
else
{
estado[i]="'desaprobado";
}
}
for(i=1;i<=n;i++)
{
cout<<"El alumno "<}
getch();
}

Ayuda por favor..............................!!!!!!!!!!!!!!!
Tres respuestas:
2010-02-22 15:42:17 UTC
bueno tal vez sea que piense que estado[50] es una lista de palabas pero no, en realidad si declaras char estado[50]; es una palabra que puede tener hasta 50 caracteres.



entonces como está tu programa estado[i]= "desaprobado", estas tratando de agrega una cadena a un espacio para un caracter.



para esto puedes utilizar un arreglo de apuntadores o un array de dos dimensiones asi podras tener un listado.



mmm.. ahorita no recuerdo la synaxis exacta pero sería algo asi.



// con apuntador

char *estado[50];



// array de 2 dimensiones

char estado[50][20];



Solo que en este último no pudes hacer estado[i]= "desaprobado", tendria que sea algo asi:

strCopy(estado[1], "desaprobado");



Pero lo mas facil es no guardar el estado como una cadena. y poner el estado dependiendo de la calificacion con uno "if ", si la calificacion es >= que la "minima aprobatoria" (6) entonces que escriba aprobado, el el caso contrario "else" pues que escriba desaprobado











Bueno espero te sirva mi respuesta
?
2010-02-23 17:36:16 UTC
Pues tambien puedes hacerlo de la siguiente manera. Utilizando la libreria string.h



#include



luego declaras una variable tal cual como lo haces con los int, char, float, etc. Pero esta vez el tipo de dato sera string, asi:



string nombre_de_variable[10] //en este caso declaras un arreglo de 10 cadenas, no de caracteres. para llenarlo utliza lo siguiente:



getline(cin, nombre_variable[i]);



Y para mostralo simplemente:

cout<


espero que te sirva. Cualquier cosa me dices. saludos
Daedalus
2010-02-22 15:43:56 UTC
Pues el error es que el tipo de variable char guarda 1 (un) caracter, no una cadena. Si quieres guardas "aprobado" o "desaprobado" (¿Eso es una palabra?) debes usar un arreglo de caracteres, es decir, que tu arreglo "estado" debe ser bidimensional, y además asignar la cadena a cada uno con un método adecuado para cadenas.


Este contenido se publicó originalmente en Y! Answers, un sitio web de preguntas y respuestas que se cerró en 2021.
Loading...