Διάβασμα-εκτύπωση ενός πίνακα δομών. Εύρεση μέσου όρου, μέγιστου, ελάχιστου στοιχείου δομής. Ως δομή θεωρείτε ο μαθητής ή αλλιώς student.
Αλφαβητική ταξινόμηση πίνακα δομών




#include
#include

const int N=3; //Μέγεθος πίνακα δομών

struct student
{
char name[20];
int age;
float grade;
};

int i;
student s[N];

void read() //Διάβασμα πίνακα δομών
{
for(i=0;imax)
{
max=s[i].grade;
strcpy(maxname,s[i].name);//Στο maxname καταχωρείται το
όνομα του σπουδαστή με το μεγαλύτερο βαθμό
}

printf("\nStudent %s has the maximum grade %.2f\n ",maxname,max);
}


void write() //Εκτύπωση πίνακα δομών
{
printf("Name\tAge\tGrade\n");

for(i=0;i<N;i++)
printf("%s \t %d \t %.2f \n",s[i].name,s[i].age,s[i].grade);

}
void average() //Υπολογισμός μέσου όρου σπουδαστών
{
float sum=0,av;

for(i=0;i<N;i++)
sum+=s[i].grade; //sum=sum+s[i].grade;
av=sum/N;
printf("Average grade of all students is: %.2f\n",av);
}

void maximum() //Εμφάνιση σπουδαστή με το μεγαλύτερο βαθμό
{
char maxname[20]; //Αυτή η μεταβλητή χρησιμοποιείται για να καταχωρηθεί το
  όνομα του σπουδαστή με το μεγαλύτερο βαθμό 
float max;

max=s[0].grade; //Υποθέτω ότι ο βαθμός του 1ου μαθητή είναι ο μεγαλύτερος
strcpy(maxname,s[0].name);//Αρχικά καταχωρείται το όνομα του 1ου σπουδαστή
for(i=1;i<N;i++)
if(s[i].grade>max)
{
max=s[i].grade;
strcpy(maxname,s[i].name);//Στο maxname καταχωρείται το
όνομα του σπουδαστή με το μεγαλύτερο βαθμό
}

printf("\nStudent %s has the maximum grade %.2f\n ",maxname,max);
}

void minimum() //Εμφάνιση σπουδαστή με το μικρότερο βαθμό
{
char minname[20]; //Αυτή η μεταβλητή χρησιμοποιείται για να καταχωρηθεί το
όνομα του σπουδαστή με το μικρότερο βαθμό
float min;

……………………………………………………………………

}
void bubblesort() //Αλφαβητική ταξινόμηση σπουδαστών
{
student temp; //Βοηθητική μεταβλητή τύπου student για την εναλλαγή των
στοιχείων στο bubblesort
int k;

for(k=1;k0)
//Προσοχή! Συγκρίνουμε μόνο το όνομα των σπουδαστών
(συγκρίνοντας τους ASCII κωδικούς των αντίστοιχων χαρακτήρων)
αλλά με τις εντολές που ακολουθούν εναλλάσσουμε όλη την εγγραφή
και όχι μόνο το όνομα
{
temp=s[i];
s[i]=s[i+1];
s[i+1]=temp;
}
}




void main()
{
read();
printf("\nInitial array of students:\n");
write();
average();
maximum();
minimum();
bubblesort();
printf("\nSorted array of students:\n");
write();
}