Ένα από τα απλά ζητήματα στον προγραμματισμό σε C είναι η εύρεση του μεγίστου και ελαχίστου στοιχείου ενός πίνακα, καθώς και την θέση του μέσα σε αυτόν. Στην προσπάθεια μας να δώσουμε όσο πιο απλά και κατανοητά γίνετε το ερώτημα αυτό, παραθέτουμε τον παρακάτω κώδικα, προς μελέτη.
Βασικό σημείο είναι ότι αυτοί οι αλγόριθμοι μπορούν να χρησιμοποιηθούν, με την αντίστοιχη παραλλαγή τους, και για την ανίχνευση μεγίστου και ελαχίστου στοιχείου μέσα σε μια δομή(struct ) ή σε έναν δισδιάστατο πίνακα.

Θα έχουμε λοιπόν τον παρακάτω κώδικα:


#include <stdio.h>

const int N=10;

void main()
{
int max,maxp,min,minp,i,x[N];
//Το maxp χρησιμοποείται για να φυλάξει τη θέση του μέγιστου στοιχείου και το minp του ελάχιστου
//Το i δείχνει πάντα τη θέση του πίνακα ενώ το x[i] δείχνει το στοιχείο του πίνακα στη θέση i. Τα στοιχεία ενός πίνακα αριθμούνται πάντα από το 0 και συμβολίζονται x[0], x[1], x[2], x[3] και x[4].

//Οποιαδήποτε λειτουργία σε μονοδιάστατο πίνακα απαιτεί τη χρήση της εντολής for
for (i=0;i<=N-1;i++) //To for αυτό υλοποιεί το διάβασμα του πίνακα
{
printf("Dose to %d stoixeio: ",i+1);
scanf("%d",&x[i]);
}
printf("\nPinakas\n");
for (i=0;i<=N-1;i++) //To for αυτό υλοποιεί την εκτύπωση του πίνακα
printf("%d\t",x[i]);
printf("\n");
max=min=x[0]; //Υποθέτουμε ότι το μέγιστο και το ελάχιστο στοιχείο του
   πίνακα είναι το 1ο
maxp=minp=0; //Υποθέτουμε ότι η θέση του μέγιστου και του ελάχιστου
   στοιχείου του πίνακα είναι η πρώτη δηλαδή το 0
for (i=0;i<=N-1;i++) //To for αυτό υλοποιεί την εύρεση του μέγιστου και του
   ελάχιστου στοιχείου του πίνακα
{
if (x[i]>max)
{
max=x[i];
maxp=i;
}

if (x[i]<min)
{
min=x[i];
minp=i;
}
}
printf("Megisto stoixeio pinaka = %d sti thesi %d \n",max,maxp);
printf("Elaxisto stoixeio pinaka = %d sti thesi %d \n",min,minp);
}