Hallo zusammen,
ich hab die Aufgabe in C ein Programm zu schreiben, dass aus einem Array, welches mit Zufallszahlen gefüllt worden ist, die betragsmäßig größte Zahl bestimmt.
Mein Programm gibt gibt den Array noch aus, bricht aber dann ab ohne die größte Zahl auszugeben.
Und ich kann den Fehler nicht finden.
Kann mir jemand helfen?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
//Funktion für Zufallszahlen
int Zufallszahl(int iAnfang, int iEnde)
{
int iZahl=0;
//Kontrolle ob richtiges Intervall
if (iAnfang>=iEnde)
{
printf("Falsches Intervall:");
printf("\n\n\t");
printf("Die Obere Grenze ist kleiner als die Untere Grenze!!!\n\n\n");
exit (1);
}
else
{
if(iEnde-iAnfang>32767)
{
printf("Kein gueltiges Intervall!\n\n\n");
exit (1);
}
else
{iZahl=(rand()%(iAnfang-iEnde+1))+iAnfang;
return iZahl;}
}
}
int iMaxima(int *iArray, int iSize)
{
int i=0, k=0, j=0;
for(i=0; i<iSize; i++)
{
if((*iArray+i)<0)
*(iArray+i) *= (-1);
}
for(k=0; k<iSize; k++)
{
if ((*iArray+k+1)<(*iArray+k))
j=(*iArray+k+1);
}
return (*iArray+k+1);
}
int main()
{
int AiArray[20]={0}, iAnfang=0, iEnde=0, r=0, s=0, t=0;
int *ipZeiger=NULL;
srand((unsigned)time(NULL));
printf("Bitte den Anfang des Intervalls eingeben: ");
scanf(" %i", &iAnfang);
printf("\n\nBitte den Endwert des Intervalls eingeben: ");
scanf(" %i", &iEnde);
printf("\n\n");
//Befüllen des Arrays mit Zufallszahlen
for (r=0; r<20; r++)
{
AiArray[r] = (Zufallszahl (iAnfang, iEnde));
}
printf("20 Zufallszahlen:\n\n\n");
//Ersten zehn Zufallszahlen
for (s=0; s<10; s++)
{
printf("%i\t", AiArray);
}
printf("\n");
//Zweiten zehn Zufallszahlen
for (s=10; s<20; s++)
{
printf("%i\t", AiArray);
}
ipZeiger=AiArray;
t=iMaxima(*ipZeiger, 20);
printf("Groeßte Zahl ist %i", t);
return 0;
}
Viele Dank!
Snoopy10 Gast |