Práctica de estructura (2) matriz de estructura

Después de estudiar el concepto de matriz de estructura la última vez, podemos realizar la operación real del código en la matriz de estructura. Puede sentir que la combinación de la matriz y la estructura hará que el código sea más funcional y simplificado.
Este intercambio es para visualización de código y análisis de código.
Visualización de código:
Ejemplo:

#include<stdio.h>
struct stu
{
    
    
	int number;
	char name[20];
	int score[5];
}st[10]={
    
    
	{
    
    1001,"zhao",85,64,82,63},
	{
    
    1002,"Qian",92,60,96,67},
	{
    
    1003,"you",99,90,87,90},
	{
    
    1004,"ruan",90,98,87,86},
	{
    
    1005,"zhang",90,87,77,88}
},temp;
int main()
{
    
    
	int i,j;
	int num;
    num=5;

	for(i=0;i<num;i++)
	{
    
    
		st[i].score[4]=0;
		for(j=0;j<4;j++)
		{
    
    
			st[i].score[4]+=st[i].score[j];
		}
	}

	for(i=0;i<num;i++)
	{
    
    
		for(j=0;j<num-i;j++)
		{
    
    
			if(st[j].score[4]<st[j+1].score[4])
			{
    
    
			temp=st[j];
			st[j]=st[j+1];
			st[j+1]=temp;
			}
		}
	}

   printf("学号\t姓名\t成绩1\t成绩2\t成绩3\t成绩4\t总成绩\n");
   for(i=0;i<num;i++)
	  {
    
    
	   printf("%d\t%s\t%d\t%d\t%d\t%d\t%d\n",st[i].number,st[i].name,st[i].score[0],
		   st[i].score[1],st[i].score[2],st[i].score[3],st[i].score[4]);
   }
}

El ejemplo está mirando el código modificado en el libro de texto.

Análisis de código:

st [10] = { {1001, "zhao", 85,64,82,63}, {1002, "Qian", 92,60,96,67}, {1003, "tú", 99,90,87 , 90}, {1004, "ruan", 90,98,87,86}, {1005, "zhang", 90,87,77,88} }, temp; Esta parte es la variable definida por la estructura stu, textbook De hecho, la función principal se define nuevamente, pero me gusta definirla de una vez. temp es una variable temporal para el intercambio. Relacionado con la clasificación de burbujas posterior de la puntuación total. Esta parte es la puntuación total de cuatro materias: para (i = 0; i <num; i ++) { st [i] .score [4] = 0; for (j = 0; j <4; j ++) { st [i ] .score [4] + = st [i] .score [j]; } } puntuación [4] en el cuerpo del bucle es una parte de la memoria reservada para la puntuación total cuando se define la puntuación [5] (el pie de página es de cuatro puntuaciones El orden es 0, 1, 2, 3. Desde aquí, puede experimentar el efecto de código simplificado de usar matrices de estructura y no necesita definir una matriz para almacenar esta parte. El siguiente es el tipo de burbuja: for (i = 0; i <num; i ++) { for (j = 0; j <num-i; j ++) { if (st [j] .score [4] <st [j + 1] .puntuación [4])
























{ temp = st [j]; st [j] = st [j + 1]; st [j + 1] = temp; } } } Esto es más difícil de entender que la clasificación de burbujas anterior de matrices unidimensionales. Aún puede entenderlo si lo lee con atención. Todo el código es relativamente fácil.







Supongo que te gusta

Origin blog.csdn.net/yooppa/article/details/112642379
Recomendado
Clasificación