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

Arreglos en C

Estas en el tema de Arreglos en C en el foro de C/C++ en Foros del Web. El programa es un contador de cursos de 10 alumnos cada 1, y del cual espera sacar el promedio de cada curso, el tema q ...
  #1 (permalink)  
Antiguo 24/09/2011, 10:31
 
Fecha de Ingreso: septiembre-2011
Mensajes: 7
Antigüedad: 13 años, 1 mes
Puntos: 1
Arreglos en C

El programa es un contador de cursos de 10 alumnos cada 1, y del cual espera sacar el promedio de cada curso, el tema q me tira estos errores yr ealmente no se como solucionarlos, si me ayudarian se los agradeceria

#include <stdio.h>
#include <conio.h>
float alumnos[10];
float cursos[12];
int contador, contador2;
float notas ( float alumnos[10]);

main()
{
for ( cursos = 0; cursos < 12; contador++)
{
for ( alumnos = 0; alumnos < 10; contador2++){
printf("Ingrese las notas de 10 alumnos del curso %d \n", contador);
scanf("%f", &alumnos[contador2]);}
}
printf("\tLista de Cursos\n");
printf("\tLista de notas\n");
for ( cursos = 0; cursos < 12 ; contador++){
for ( alumnos = 0; alumnos < 10; contador2++){
printf("El promedio es %f\n", notas( alumnos[10]));}
}
getch();

}

float notas (float alumnos [10]) /*Definición de la función */
{
float sum=0, i;
for(i=0; i<10; i++)
sum=((sum+alumnos[i])/ 10);
printf("El promedio es %f\n", sum);
return (sum);
}


Errores:
10 C:\Users\Panfle\Programas C\Temas\Desde arreglos\Promedio.cpp incompatible types in assignment of `int' to `float[12]'
10 C:\Users\Panfle\Programas C\Temas\Desde arreglos\Promedio.cpp ISO C++ forbids comparison between pointer and integer
18 C:\Users\Panfle\Programas C\Temas\Desde arreglos\Promedio.cpp incompatible types in assignment of `int' to `float[12]'
18 C:\Users\Panfle\Programas C\Temas\Desde arreglos\Promedio.cpp ISO C++ forbids comparison between pointer and integer
19 C:\Users\Panfle\Programas C\Temas\Desde arreglos\Promedio.cpp incompatible types in assignment of `int' to `float[10]'
19 C:\Users\Panfle\Programas C\Temas\Desde arreglos\Promedio.cpp ISO C++ forbids comparison between pointer and integer
20 C:\Users\Panfle\Programas C\Temas\Desde arreglos\Promedio.cpp cannot convert `float' to `float*' for argument `1' to `float notas(float*)'
C:\Users\Panfle\Programas C\Temas\Desde arreglos\Promedio.cpp In function `float notas(float*)':
30 C:\Users\Panfle\Programas C\Temas\Desde arreglos\Promedio.cpp invalid types `float*[float]' for array subscript
  #2 (permalink)  
Antiguo 24/09/2011, 11:04
 
Fecha de Ingreso: septiembre-2011
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 2
Respuesta: Arreglos en C

Que compilador estas usando? Por que usas conio.h? Si estás usando borland deberías usar otro compilador como g++ que es más moderno... En fin ahora me propongo profundizar en tu código, veamos cuales son los errores....
  #3 (permalink)  
Antiguo 24/09/2011, 11:16
 
Fecha de Ingreso: septiembre-2011
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 2
Respuesta: Arreglos en C

Algunos errores.

Cita:
for ( cursos = 0; cursos < 12; contador++) // debería ser for (contador = 0 ; contador <12; contador ++)
Cita:
float notas ( float alumnos[10]); // Te sobre el ";"
  #4 (permalink)  
Antiguo 24/09/2011, 11:34
 
Fecha de Ingreso: septiembre-2011
Mensajes: 7
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: Arreglos en C

El conio para el getch, y uso dev c++
  #5 (permalink)  
Antiguo 24/09/2011, 20:56
 
Fecha de Ingreso: septiembre-2011
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 2
Respuesta: Arreglos en C

Reconstrui tu programa, me quedo perfecto, presta atención al uso que le e dado al for.

Código C++:
Ver original
  1. #include <stdio.h>
  2. #define ALUM 10
  3. #define CURS  12
  4.  
  5. /* Variables Globales */
  6. float alumnos[CURS][ALUM];
  7. int contador, contador2;
  8.  
  9. /* Funciones  */
  10. void promedio(float [CURS][ALUM]);
  11.  
  12. int main(int argc, char **argv)
  13. {
  14.     for ( contador = 0; contador < CURS; contador++)
  15.     {
  16.     printf("\nIngrese las notas de 10 alumnos del curso %d \n", contador);
  17.     for ( contador2 = 0; contador2 < ALUM; contador2++)
  18.        {
  19.     printf(" # " );
  20.         scanf("%f", &alumnos[contador][contador2]);
  21.         }
  22.     }
  23.     promedio(alumnos);
  24.     return 0;
  25. }
  26.  
  27. void promedio(float alumnos[CURS][ALUM])
  28. {
  29.    float temp=0;
  30.    for(contador=0; contador < CURS ; contador++)
  31.   {
  32.       temp=0;
  33.       for(contador2=0; contador2 < ALUM; contador2++)
  34.       {
  35.         temp= temp+ alumnos[contador][contador2];
  36.        }
  37.        temp = temp / ALUM;
  38.        printf("\nEl promedio para el curso %d es %f", contador, temp);
  39.    }
  40. }
  #6 (permalink)  
Antiguo 24/09/2011, 20:58
 
Fecha de Ingreso: septiembre-2011
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 2
Respuesta: Arreglos en C

Por si esta muy pequeño con la etiqueta highlight
Código:
#include <stdio.h>
#define ALUM 10
#define CURS  12

/* Variables Globales */
float alumnos[CURS][ALUM];
int contador, contador2;

/* Funciones  */
void promedio(float [CURS][ALUM]);

int main(int argc, char **argv)
{
    for ( contador = 0; contador < CURS; contador++)
    {
    printf("\nIngrese las notas de 10 alumnos del curso %d \n", contador);
    for ( contador2 = 0; contador2 < ALUM; contador2++)
       {
	printf(" # " );
        scanf("%f", &alumnos[contador][contador2]);
        }
    }
    promedio(alumnos);
    return 0;
}

void promedio(float alumnos[CURS][ALUM])
{
   float temp=0;
   for(contador=0; contador < CURS ; contador++)
  {
      temp=0;
      for(contador2=0; contador2 < ALUM; contador2++)
      {
        temp= temp+ alumnos[contador][contador2];
       }
       temp = temp / ALUM;
       printf("\nEl promedio para el curso %d es %f", contador, temp);
   }
}
  #7 (permalink)  
Antiguo 24/09/2011, 21:00
Avatar de WizKnight  
Fecha de Ingreso: noviembre-2010
Ubicación: Maracaibo, Venezuela, Venezuela
Mensajes: 19
Antigüedad: 14 años
Puntos: 1
Respuesta: Arreglos en C

Hola amigo, no pude arreglar tu codigo, por que no son errores de sintaxis si no otra cosa, y pues tampoco entendia tu codigo
pero te traigo este ejercicio que hice hace unos dias con la intencion de que te sirva como ejemplo, tambn voy empezando jeje :D
y como ves no use conio.h ya que no es estandar, tambien uso Dev-C++
Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6. int m,cont=0,notas,cont2,temp;
  7.  
  8.  
  9. printf("cuantos alumnos: ");
  10. scanf("%d",&m);
  11.  
  12. int promedio[m],nota[m];
  13.  
  14.  
  15. for (cont=0;cont<m;cont++)
  16. {
  17. nota[cont]=0;
  18. printf("Alumno %d",cont);
  19. printf("Cuantas notas: ");
  20. scanf("%d",&notas);
  21.  
  22. for (cont2=0;cont2<notas;cont2++){
  23. printf("Ingrese nota %d del alumno %d: ",cont2,cont);
  24. scanf("%d",&temp);
  25. nota[cont]=nota[cont]+temp;}
  26. promedio[cont]=nota[cont]/notas;
  27.  
  28. }
  29. for (cont=0;cont<m;cont++)
  30. {
  31. printf("Promedio del alumno %d: %d\n",cont,promedio[cont]);
  32. }
  33.  
  34. system("PAUSE");
  35. }
  #8 (permalink)  
Antiguo 24/09/2011, 21:06
 
Fecha de Ingreso: septiembre-2011
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 2
Respuesta: Arreglos en C

Les recomiendo usar g++ es el mejor compilador yo no lo cambio por nada...
  #9 (permalink)  
Antiguo 26/09/2011, 05:05
 
Fecha de Ingreso: septiembre-2011
Mensajes: 7
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: Arreglos en C

Muchisimas gracias!!!
Es un tema que me saco muchas dudas acerca de los arreglos, el tema que todavia no se porque tira ese error ""incompatible types in assignment of `int' to `float[12]' "", el tema que ahora me importa saber bien que significaria eso, y porque bien fue el problema
  #10 (permalink)  
Antiguo 26/09/2011, 12:13
 
Fecha de Ingreso: septiembre-2011
Mensajes: 20
Antigüedad: 13 años, 1 mes
Puntos: 2
Respuesta: Arreglos en C

Por que aparentemente estás asignnado un entero a un float, aunque eso no deberia dar muchos problemas como si pasaria al usarlo al revez.
Cuando declaras una función no tienes que declarar el nombre del parametro, solo especificar el tipo de este.

Etiquetas: arreglos, programa
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 09:28.