Foros del Web » Programación para mayores de 30 ;) » C/C++ »

obtener la nota mayor usando vectores

Estas en el tema de obtener la nota mayor usando vectores en el foro de C/C++ en Foros del Web. Hola, estoy intentando imprimir la nota más alta de 3 alumnos, pero me da error: C:\Users\asus\Desktop\vectores nota mayor.c In function `main': 17 C:\Users\asus\Desktop\vectores nota mayor.c ...
  #1 (permalink)  
Antiguo 09/08/2010, 10:12
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 2 meses
Puntos: 0
obtener la nota mayor usando vectores

Hola, estoy intentando imprimir la nota más alta de 3 alumnos, pero me da error:
C:\Users\asus\Desktop\vectores nota mayor.c In function `main':
17 C:\Users\asus\Desktop\vectores nota mayor.c subscripted value is neither array nor pointer
21 C:\Users\asus\Desktop\vectores nota mayor.c subscripted value is neither array nor pointer
24 C:\Users\asus\Desktop\vectores nota mayor.c subscripted value is neither array nor pointer

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define N_ALUMNOS 3
  5.  
  6. int main()
  7. {
  8.   char nom[N_ALUMNOS][21];
  9.   double nota;
  10.   int i;
  11.   int nota_mayor;
  12.  
  13.   for(i=0; i<N_ALUMNOS; i++){
  14.       printf("Nombre del alumno: ");
  15.       scanf("%20s", nom[i]);
  16.       printf("Nota del alumno: ");
  17.       scanf("%lf", &nota[i]);
  18.   }
  19.   nota_mayor=0;
  20.   for(i=1; i<N_ALUMNOS; i++){
  21.       if(nota[i]>nota[nota_mayor]);
  22.          nota_mayor=i;
  23.   }      
  24.   printf("%s %.2lf\n", nom[nota_mayor], nota[nota_mayor]);    
  25. }
  #2 (permalink)  
Antiguo 09/08/2010, 15:03
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: obtener la nota mayor usando vectores

Tu problema esta en que la variable nota no es un array. Y en las tres lineas donde sale el error es porque usas nota[i]:

Deberias declararla asi: double nota[N_ALUMNOS];
  #3 (permalink)  
Antiguo 10/08/2010, 05:44
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: obtener la nota mayor usando vectores

No me sale la nota más alta.

ana
9.75
lola
7.41
carlos
5.25
carlos 5.25

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define N_ALUMNOS 3
  5.  
  6. int main()
  7. {
  8.   char nom[N_ALUMNOS][21];
  9.   double nota[N_ALUMNOS];
  10.   int i;
  11.   int nota_mayor;
  12.  
  13.   for(i=0; i<N_ALUMNOS; i++){
  14.       printf("Nombre del alumno: ");
  15.       scanf("%20s", nom[i]);
  16.       printf("Nota del alumno: ");
  17.       scanf("%lf", &nota[i]);
  18.   }
  19.   nota_mayor=0;//suponemos que la primera nota es la mayor//
  20.   for(i=1; i<N_ALUMNOS; i++){
  21.       if(nota[i]>nota[nota_mayor]);
  22.          nota_mayor=i;
  23.   }      
  24.   printf("%s %.2lf\n", nom[nota_mayor], nota[nota_mayor]);
  25.   getchar();
  26.   getchar();    
  27. }
  #4 (permalink)  
Antiguo 10/08/2010, 13:02
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: obtener la nota mayor usando vectores

En la linea 21 tenes un punto y coma de mas... ";"

Si le pones el ; interpreta que es una sentencia vacia. Por lo que esa sentencia es la que queda adentro del if y no la que queres.

Etiquetas: mayor, vectores
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:00.