Cómo usar el lenguaje C para completar la programación requerida en la imagen (intente usar matrices unidimensionales)
Según sus requisitos, utilice matrices unidimensionales. Sin embargo, se recomienda utilizar una estructura para definir la información del estudiante.
La pregunta requiere el uso de matrices y punteros para los parámetros de función, y los parámetros de la matriz se pueden pasar de dos maneras: matrices y punteros.
El siguiente es el código:
#include
#define MJ 5//Número máximo de cursos
#define MT 30//Número máximo de estudiantes
#define FM 100//Puntuación completa
#define PS 60//Aprobado
int init( int ss[], int sid[],int *p_slen);//Iniciando la matriz.
La puntuación total se devuelve correctamente y se devuelve 0 si falla
int contFStudents(int ss[],int sid[],int slen);//Cuente el número de personas que reprobaron e imprima la lista y devuelve el número de personas
int contAAvg(int ss[],int sid[],int slen,float avg);//avg representa la puntuación promedio, si se desconoce, se pasa -1 para devolver el número de personas
int contMax(int ss[], int slen,int *sid);//Estadísticas sobre la puntuación más alta y el número de estudiantes
int main()
{
int ss[MT],sid[ MT],sum;
int slen=0;//El número real de estudiantes ingresados p>
int fn,an;
sum=init(ss,sid ,&slen);
fn=contFStudents(ss,sid,slen);
an=contAAvg(ss,sid,slen,(sum*1.0)/slen);
p>printf("Porcentaje de calificaciones reprobatorias %.0f%%\n",(fn* 1.0)/slen*100);
printf("Porcentaje de puntuaciones superiores o iguales al promedio % .0f%%\n",(an*1.0)/slen*100);
contMax(ss,slen,sid);
devuelve 0;
}
int init(int ss[],int sid[] ,int *p_slen)
{
int i=0,n,sum =0;
if(!p_slen) devuelve 0;
*p_slen=0;
printf("Las puntuaciones de todos los estudiantes de la clase para un curso determinado (sin número de estudiantes) superiores a %d):\n",MT); p>
for(i=0;i i=0; while(*p_slen<=MT) { printf("Ingrese el número de estudiante y la puntuación de %d: ",sid[i ]),scanf("%d",&n); if(n>FM) { printf("%d la entrada no es válida y no puede ser mayor que la puntuación máxima %d\n",n,FM); continuar; } if( n<0) break; ss[i++]=n; suma+=n; } *p_slen=i ; devolver suma; } int contFStudents(int ss[],int sid[],int slen) { int i,cnt=0; for(i=0;i if(ss[i] printf("Número de personas que reprobaron ***: %d personas\n",cnt); devolver cnt; p> } int contAAvg(int ss[],int sid[],int slen,float avg) { int i, cnt=0,sum=0; if(avg==-1) { for(i=0;i avg=(sum*1.0)/slen; } for(i=0,printf("Puntuación promedio Los estudiantes con puntajes promedio (%f) y superiores incluyen:\n",avg);i if(ss[i]>=avg)cnt++,printf("ID de estudiante% d, puntaje: %d\n",sid[i],ss[i]); printf("Número de personas con puntaje promedio y superior***: %d personas\n", cnt ); return cnt; } int contMax(int ss[],int slen,int *sid) { int i,max=ss[0]; if(!sid) devuelve 0; for(i=0;i< slen;i++ ) if(ss[i]>max) max=ss[i]; for(i=0,printf("El número de estudiante con la puntuación más alta (%d) Hay:\n",max);i if(ss[i]==max) printf("%d\n",sid[i] ); devuelve 1; }