The fourth step, according to the average score ranking, sorting algorithm using bubble method.
void Order (Arr,n)
struct Stu arr[];
int n;
{struct Stu temp;
int i,j,x,y;
F o r (i = 0; i < n-1 i + +)
F o r (j = 0; J < n-1-I; j + +)
if (Arr[j].score[3]>arr[j+1].score[3])
{temp=arr[j];/knot * The type variable does not allow the whole input or output, but allows reciprocal assignment.
ARR[J]=ARR[J+1]; /* for Exchange */
A r R [j + 1] = t e m p;
}
}
The fifth step, according to the table requirements output.
void output (ARR,N)/* A tabular form of an array of struct types with n elements */
int n;
struct Stu arr[];
{int i,j;
printf ("********************table********************\n") hit, print/watch * head * *
printf ("----------------------------------------------------\ n");
/* Output a horizontal line */
P r i n t f ("| % 1 0 S | % 8 S | % 7 S | % 7 S | % 7 S | % 7 S | \ n "," n A M E "," N u m b e r "," E n g L i s H "," M a t h e M ",
"P H y S i c S", "a v e r a G E");
/* The output effect is: | name| number| english| mathema| physics| average|*/
P r i n t F ("------------------------------------------------------------------------------- n ");
for (i=0;i<n;i++)
{
P r i n t f ("| % 1 0 S | % 8 L D | ", a r R [i]. n A m E, a r R [i]. n u m b e r); /* Output name, school number */
F o r (j = 0; J < 4; J + +)
P r i n t F ("% 7"). 2 F | ", a r R [i]. S c o r e [j]); /* Output of three subjects and the average */
P r i n t F ("n");
P r i n t F ("----------------------------------------------------------------N " ) ;
}
}
The sixth step is to solve the students ' average score and output in the group. In the last row of the output table, the output is averaged into a single section
Performance and overall average.
void Out_row (ARR,N)/* An array of the struct type of n elements for a single average */
int n;
struct Stu arr[];
{
Float row[4]={0,0,0,0};/* Defines a one-dimensional array that holds individual averages */
int i,j;
F o r (i = 0; i < 4; i + +)
{
F o r (j = 0; J < N; j + +)
R O w [i] = r O w [i] + a r R [j]. S c o r e [i]; /* Calculate individual sum */
row[i]=row[i]/n; Count/* Calculate single Average * *
}
printf ("|%19c|", ""); Output by/form * *
for (i=0;i<4;i++)
P r i n t F ("% 7"). 2 F | ", R o w [i]);
P r i n t F ("N--------------------------------------------------n");
}
Step seventh, define the M a i n () function, listing the complete list of programs.
#include
#include
struct STU
{
Char name[20];
Long number;
float score[4];
} ;
M a i n ()
{
void input (); /* Function declaration */
void Aver ();
void order ();
void output ();
void Out_row ();
struct Stu stud[4]; /* Defines the structure body array */
float row[3];
i n p u t (S t u D, 4); /* Call the Custom function */
A V e R (S t u D, 4);
o r d E R (S t u D, 4);
o u T P u t (S t u D, 4);
o u t _ R o W (s t u D, 4);
}
/ * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
void input (Arr,n)
struct Stu arr[];
int n;
{int i,j;
Char temp[30];
for (i=0;i<n;i++)
{
printf ("\ninput name,number,english,mathema,physic\n");
G e T S (a r R [i]. N a m e);
G e t S (t e M P);
A r R [i]. n u m b e r = a t o L (t e M P);
F o r (i = 0; i < 4; i + +)
{
F o r (j = 0; J < N; j + +)
R O w [i] = r O w [i] + a r R [j]. S c o r e [i]; /* Calculate individual sum */
row[i]=row[i]/n; Count/* Calculate single Average * *
}
printf ("|%19c|", ""); Output by/form * *
for (i=0;i<4;i++)
P r i n t F ("% 7"). 2 F | ", R o w [i]);
P r i n t F ("N--------------------------------------------------n");
}
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.