Hallo an alle!
Ich habe folgendes Problem:
Für die Uni muss ich ein Programm erstellen, welches aus einer Zufälligen Reihe, bestehend aus 20 Zahlen, die betragsmäßig größte ermittelt.
Einen Zufallsgenerator habe ich schon, der ein Array mit 20 Zahlen befüllt.
Aufgabenstellung: "Erstellen Sie die Funktion int iMaxima(int *iArray, int iSize). Sie bestimmt die betragsmäßig größte Zahl des Arrays und gibt diese zurück. Verwenden sie in der Funktion KEINE eckigen Klammern.
Momentan bin ich soweit, dass ich, in einen zusätzlichen Programm, schon mal was geschrieben hab, welches über einen Bubble-Sort-Algorytmus die Zahlen Sortiert und dann die größte ausgibt.
Bei dem Programm, das ich erstellen soll, soll das Array aber in der Main-Funktion erstellt und befüllt werden und nur in der Unterfunktion die höchste Zahl ermittelt werden. Mir ist nicht ganz klar, wie ich im Unterprogramm auf das Array der Main Funktion zugreifen soll.
Ich wäre dankbar, wenn irgendjemand Rat wüsste.
Mein Quelltext bisher: (den Text in der iMaxima Funktion habe ich vorerst nur aus meinem 2. Programm, welches ich oben beschrieben hab, hineinkopiert, ist also noch nicht fertig)
Ich habe folgendes Problem:
Für die Uni muss ich ein Programm erstellen, welches aus einer Zufälligen Reihe, bestehend aus 20 Zahlen, die betragsmäßig größte ermittelt.
Einen Zufallsgenerator habe ich schon, der ein Array mit 20 Zahlen befüllt.
Aufgabenstellung: "Erstellen Sie die Funktion int iMaxima(int *iArray, int iSize). Sie bestimmt die betragsmäßig größte Zahl des Arrays und gibt diese zurück. Verwenden sie in der Funktion KEINE eckigen Klammern.
Momentan bin ich soweit, dass ich, in einen zusätzlichen Programm, schon mal was geschrieben hab, welches über einen Bubble-Sort-Algorytmus die Zahlen Sortiert und dann die größte ausgibt.
Bei dem Programm, das ich erstellen soll, soll das Array aber in der Main-Funktion erstellt und befüllt werden und nur in der Unterfunktion die höchste Zahl ermittelt werden. Mir ist nicht ganz klar, wie ich im Unterprogramm auf das Array der Main Funktion zugreifen soll.
Ich wäre dankbar, wenn irgendjemand Rat wüsste.
Mein Quelltext bisher: (den Text in der iMaxima Funktion habe ich vorerst nur aus meinem 2. Programm, welches ich oben beschrieben hab, hineinkopiert, ist also noch nicht fertig)
Code:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#define MAX 20
int Zufall(int iAnfang, int iEnde)
{
int iZufall = 0;
if ((iEnde - iAnfang)>0 && (iEnde - iAnfang)<=32767)
iZufall = rand()%(iEnde - iAnfang + 1) + iAnfang;
else
{
printf("Das eingegebene Intervall ist ungueltig!\n");
return 0;
}
return iZufall;
}
int iMaxima(int *iArray, int iSize)
{
float fTemp=0.0;
int i=0, j=0;
for (i=MAX-1; i>0; i--)
{
for(j=0; j<i; j++)
{ if (iArray[j+1] < iArray[j])
{
fTemp=iArray[j];
iArray[j] = iArray[j+1];
iArray[j+1] = fTemp;
}
}
}
printf("\n\nZahlen Sort\n\n");
printf("%.2d ", iArray[MAX]);
return iArray[MAX];
}
int main(void)
{
int iArray[MAX]={0}, i=0, iAnfang=0, iEnde=0, iTemp=0;
srand((unsigned)time(NULL));
printf("\n\n\t*********** Maxima Suche ************");
printf("\n\nBitte Untergrenze eingeben:\t");
scanf(" %d", &iAnfang);
printf("\nBitte Obergrenze eingeben:\t");
scanf(" %d", &iEnde);
printf("\n\n20 Zufallszahlen:\n\n");
for(i=0; i<MAX; i++)
{
*(iArray+i)=Zufall(iAnfang, iEnde);
printf("%d\t", *(iArray+i));
}
iTemp=iMaxima;
printf(" Groeßte Zahl: %d\n\n", iTemp);
return 0;
}