/* plateau.c -- Matthias Jauernig, 09.01.03 */ /* Programm liefert einen Algorithmus zur Lösung des "Plateau-Problems" */ #include /* -- Struktur, um die Länge und den Index eines max. Plateaus abzuspeichern ---------- */ typedef struct { int laenge; int index; } plateau; /* -- plateau_alg() ---- sucht den Index und die Länge des längsten Plateaus in Array a */ plateau plateau_alg(int *a, int n){ plateau erg={0,-1}; //Rückgabestruktur mit Anfangswerten definieren int i, sum; //schaue der Reihe nach alle Plateaus an und greife deren Länge ab for(i=0; ierg.laenge){//neues längstes Plateau gefunden -> Werte speichern erg.laenge=sum; erg.index=i; } } return erg; } /* ---- main() ------------------------------------------------------------------------ */ int main(void){ plateau laengstes; int a[]={1,2,3,3,4,4,4,5,6,6,6,6,6,7,8,9,9,9,9,9,10};//Beispielarray int elem=sizeof(a)/sizeof(a[0]);//Elementeanzahl im Array bestimmen int i; printf( "Plateau-Problem\n" "---------------\n\n"); printf("Ausgabe des Arrays:\n"); printf(" "); for(i=0; i