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

Cómo completar la programación requerida en lenguaje C (intente usar matrices unidimensionales)

Dependiendo de sus requisitos, utilice matrices unidimensionales. Pero se recomienda definir estructuralmente la información de los estudiantes.

El tema requiere parámetros de función para usar matrices y punteros. Los parámetros de matriz se pueden pasar de dos maneras.

El código es el siguiente:

# include ltstdio.h gt

#Definir MJ 5//Número máximo de cursos

#Definir MT 30 //Número máximo de estudiantes

#Definición FM 100//Puntuación completa

#Definición PS 60// Aprobado.

int init(int ss[], int sid[], int * p_slen); //Iniciando la matriz. La puntuación total se devuelve correctamente; de ​​lo contrario, se devuelve 0.

int contFStudents(int ss[], int sid[], int slen); //Cuenta el número de fracasos e imprime 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, como el número de personas devueltas por transmisión desconocida -1.

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 matriculados

int fn, an;

sum=init(ss, sid, ampslen);

fn=contFStudents(ss, sid, slen); contAAvg(ss, sid, slen, (suma * 1.0)/slen);

Printf("Tasa de fallas.0f \ n ", (fn * 1.0)/SLEN * 100);

Printf( "La puntuación promedio es mayor o igual a .0f\n", (an * 1.0)/SLEN * 100);

contMax(ss, slen, sid);

Devuelve 0;

p>

}

int init(int ss[], int sid[], int *p_slen)

{

int i=0, n, suma = 0;

Si (!p_slen) devuelve 0;

* p_slen = 0;

Printf("Todos los estudiantes de esta clase son Los resultados de un determinado curso (el número de estudiantes no excede d): \ n ", mt

for (I = 0); ; I ltMT; i ) sid[I] = 1000 I; //La identificación del estudiante no está disponible. Para requisitos especiales, simplemente use números.

I = 0;

while(* p _ slen lt;=MT)

{

Printf("Por favor, introduzca el Número de grado d: ", SID [i]), scanf ("d ",; n);

if (n gtFM)

{

Printf ("La entrada d no es válida y no puede ser mayor que la puntuación máxima de d\n ", n, FM

Continuar

}

Si; ( n lt0 ) roto;

ss[i ]= n;

suma = n

}

* p _ slen; = I;

Suma devuelta;

}

int contFStudents(int ss[], int sid[], int slen)

{

int i, CNT = 0;

for(I = 0; i ltsleni )

if(ss[I] lt; PS)cnt , printf("Estudiante número d, puntuación: d, reprobado!\n ", sid[i], ss[I]);

Printf("Número de fracasos * * *: d personas\n " , CNT);

Devolver cnt

}

int contAAvg(int ss[], int sid[], int slen, float avg)

{

int i, cnt=0, suma = 0;

if(avg==-1)

{

for(I = 0; i ltsleni )sum = ss[I];

promedio = (suma * 1.0)/slen

}

For(i=0, printf("Los estudiantes con puntaje promedio (f) y superior son:\n ", avg); iltsleni)

if(ss[I] gt;=avg)cnt , printf("Número de estudiante d, puntuación: d\n ", sid[i], ss[I]);

Printf("Puntuación promedio y superior * * *: d persona\n ", CNT);

Devolver cnt

}

int contMax(int ​​​​ss[], int slen, int *sid)

{

int i, máx = ss[0];

if (! sid) devuelve 0;

for(I = 0;iltsleni)

if(ss[I] gt;max)max = ss[I];

For(i=0, printf("Los estudiantes con la puntuación más alta (d) son: \n ", max); Iltsleni)

if(ss[i]==max) printf(" d\n ", sid[I]);

Devolver 1;

}