Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo usar el lenguaje C para completar la programación requerida en la imagen (intente usar matrices unidimensionales)

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

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);

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;

}