Per un esercizio analogo mi sono imbattuto a dover confrontarmi con un problema simile.
Devo trovare il massimo di un array, un argomento sciocco tuttavia, trovo delle difficolta'.

Ho iniziato innanzitutto a scrivere l'algoritmo, per poi cercare di passarlo in C, sia per esercitazione sia per aver conferma che l'algoritmo funzioni.
codice:
function massimo_dell_array (a,n)
var i: INTEGER
var massimo: INTEGER
    begin
        i:=1
        massimo:=a[i]
        for i:= 2 to n do
            if a[i]>massimo then
                massimo:=a[i]
        massimo_dell_array:=massimo
    end
Fin qui, credo che tutto vada bene, ho provato a fare il mio schemino con i rettangoli, e pare andare (o diagrammi di flusso insomma).
Andiamo oltre, in C (ho aggiunto qualche commento per avere coscienza di cosa stia facendo):
codice:
 
#include <stdio.h>
#define DIM_ARRAY 5
 /* Abbiamo definito la dimensione massima di un ARRAY. Questo ci aiuta a immettere dei numeri in un ARRAY per poi confrontarli.
 */                
main ()
{
     int a[DIM_ARRAY];
     int i=0;
     int massimo=0;
  //costrutto per l'acquisizione dei valori
  /* 1 */   for (i=0;i<DIM_ARRAY;i++) {
  /* 2 */   printf("Immetti numero [%d]: ",i);
  /* 3 */   scanf("%d",&a[i]);
            }
  /*
  Nei primi 3 passi, abbiamo effettuato un controllo
  per l'immissione dei numeri nell'array 
  */
  /* 4 */   for (i=0;i<DIM_ARRAY;i++) {
  /* 5 */   printf("I valori immessi sono: [%d]\n",a[i]); 
            }
  /*
  In questi altri passi invece, verifichiamo che il costrutto precedente
  sia corretto stampando i valori a video
  */
  /*Entriamo nel ciclo ...
    E'  qui che inizia il dilemma
   */
            for (i=1;i<DIM_ARRAY;i++)
             {
                if (a[i]>a[i+1])
                //if (a[i]==a[i+1]) 
                { printf("\nSono tutti uguali\n");}
                else
                {
                a[i]=massimo;
                }
             }
             printf("Ok, esiste %d\n");                                 
             system("PAUSE");
}
Il programma parte, mi fa immettere dei valori, e questi vengono stampati a video.
L'entrata nel costrutto di controllo al fine di verificare se' ci sia il massimo ... bho' crea problemi.
Non capisco pero' perche' si blocca - e come risolvere.

Attendo una vostra.