Buenas noches, podrían ayudarme con el siguiente código? al compilar me envía un error en el case 2.
134 4 [Error] switch jumps into scope of identifier with variably modified type
134 4 [Error] switch jumps into scope of identifier with variably modified type
Código [Seleccionar]
/* Programa: calificacionesEscuela.c
Descripción: Programa que determina el mayor y menor promedio de un grupo escolar.
Versión 1.2
Mejoras: Se utilizan estructuras y arreglos para la obtención y almacenamientos de los datos. */
/* Directivas de preprocesador */
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
/* NOTA: Vamos a tener una variable de tipo estructura que va a contener los datos del alumno, esto es:
struct grupo
{
char nombreAlum[15];
float calfLen;
float calfMat;
float calfCie;
}a[],b[];
Vamos a solicitar cada calificación y nombre del alumno a traves de un for dependiendo de la cantidad
de alumnos que defina el usuario y guardaremos cada calificacion en la estructura correspondiente, esto es:
grupo a:
grupo.nombreAlum;
grupo.calfLen;
grupo.calfMat;
grupo.calfCie;
*/
/* Función principal */
main()
{
/* Declaración de variable, estructuras y arreglos */
struct grupo
{
char nomAlum[15];
float calfLen;
float calfMat;
float calfCie;
float prom1;
};
char mejorAlum[15];
int totalAlum, n, opc;
float prom2=0;
/* Ciclo para repetir el menú mientras la opción no sea salir */
do
{
/* Bienvenida del programa */
system("cls");
printf("\n******* Departamento de Control Escolar *******");
printf("\n\n*****Programa de control de calificaciones*****");
/* Impresión del menú */
printf("\n\n\tSeleccione el grupo a evaluar");
printf("\n\t1. Grupo A\n\t2. Grupo B\n\t3. Salir");
printf("\n\tGrupo seleccionado: ");
/* Instrucción que lee na variable de tipo carácter */
scanf("%d",opc);
switch(opc)
{
case 1:
printf("\n\tIngresa el numero de alumnos a calificar: ");
scanf("%d",&totalAlum);
/* Declaramos la estructura del grupo a */
struct grupo a[totalAlum];
/* Estructura repetitiva para obtener el nombre y calificaciones del alumno */
for(n=0, a[n].prom1=0; n<totalAlum; n++)
{
printf("\n\n\tIngresa el nombre del alumno: ");
scanf("%s",&a[n].nomAlum);
printf("\n\tIngresa las calificaciones de Lenguaje, Matematicas y Ciencias: ");
scanf("%f,%f,%f",&a[n].calfLen,&a[n].calfMat,&a[n].calfCie);
/* Calculamos el promedio del alumno */
a[n].prom1=(a[n].calfLen+a[n].calfMat+a[n].calfCie)/3;
printf("\n\tEl promedio de %s es: %.2f\n",a[n].nomAlum,a[n].prom1);
/* Determinamos mediante una estructura selectiva cual es el mayor promedio */
if(a[n].prom1>prom2)
{
prom2=a[n].prom1;
mejorAlum[15]=a[n].nomAlum[15];
}
}
/* Mostramos en pantalla el mejor promedio del grupo */
printf("\n\tEl mejor promedio del grupo %c es: %s con %.2f\n",opc,mejorAlum[15],prom2);
system("pause");
break;
case 2:
printf("\n\tIngresa el numero de alumnos a calificar: ");
scanf("%d",&totalAlum);
/* Declaramos la estructura del grupo a */
struct grupo b[totalAlum];
/* Estructura repetitiva para obtener el nombre y calificaciones del alumno */
for(n=0, b[n].prom1=0; n<totalAlum; n++)
{
printf("\n\n\tIngresa el nombre del alumno: ");
scanf("%s",&b[n].nomAlum);
printf("\n\tIngresa las calificaciones de Lenguaje, Matematicas y Ciencias: ");
scanf("%f,%f,%f",&b[n].calfLen,&b[n].calfMat,&b[n].calfCie);
/* Calculamos el promedio del alumno */
b[n].prom1=(b[n].calfLen+b[n].calfMat+b[n].calfCie)/3;
printf("\n\tEl promedio de %s es: %.2f\n",b[n].nomAlum,b[n].prom1);
/* Determinamos mediante una estructura selectiva cual es el mayor promedio */
if(b[n].prom1>prom2)
{
prom2=b[n].prom1;
mejorAlum[15]=b[n].nomAlum[15];
}
}
/* Mostramos en pantalla el mejor promedio del grupo */
printf("\n\tEl mejor promedio del grupo %c es: %s con %.2f\n",opc,b[n].nomAlum,prom2);
system("pause");
break;
case 3:
printf("\n\n\tAdios.\n\n");
system("pause");
break;
default:
printf("\n\nOpcion invalida\n\n");
system("pause");
}
}while (opc!=3);
}