C-Programmierung min und max von array
Ich versuche, ein Programm zu schreiben, das füllt ein array mit 11 spots mit zufälligen zahlen zwischen 1-100. Es scheint, wie die random-Zeug funktioniert, und das minimum funktioniert, aber das maximum, ich bin verrückt hohe zahlen, die nicht einmal Teil der 11 zahlen, wurden geworfen in das array.
Nicht ganz sicher, was das problem ist, aber ich bin ziemlich sicher, dass es etwas ist lächerlich einfach ich bin auf der Suche Vergangenheit.
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main( void )
{
int i = 0;
int a[11];
int min = a[0];
int max = a[0];
srandom( (unsigned) time(NULL) );
for (i=0;i<11;i++)
{
a[i]=random( ) % 100 ;
printf("%d\n", a[i]);
if (a[i] > max)
{
max = a[i];
}
else if (a[i] < min)
{
min = a[i];
}
}
printf("Min: %d\n", min);
printf("Max: %d\n", max);
return ( 0 ) ;
}
AUSGABE:
16
28
27
58
8
53
76
35
27
19
41
Min: 8
Max: 152908968
Du musst angemeldet sein, um einen Kommentar abzugeben.
max initialisiert wird, um einen sehr hohen Wert initialisieren .. max 0;
Hier ist der Feste code :
Ausgabe:
min
undmax
sollte beide das gleiche zufällig wiea[0]
zunächst; nicht nurmin
. I. e.a[0] = min = max = random() % 100;
Dein problem ist genau hier:
Bist du mit
a[0]
zu initialisierenmin
undmax
vora[0]
selbst initialisiert wurde.Initialisieren
a[0]
einstellen und dannmin
undmax
seinen Wert, dann gehen Sie von dort.Ersten Sie initialisieren
min
&max
mit Müll Werte & dann sind Sie vergleichen Sie mit anderen Elementen des array?Ersten Werte zuweisen jedes element der Reihe.
Set min & max-Werte a[0] (der Einfachheit halber).
Versuchen Sie den folgenden code:
Problem ist dein code-snippet
Zuweisung
a[0]
zumax
undmin
vor dem initialisieren die Elemente dera
. Zunächst initialisieren Sie die Elemente des array, dann ordnen Sie Ihre Elemente auf andere Variablen.a[0] = min = max = random() % 100;
. Die einzige andere Sache, die wechselnden Bedürfnisse im OP-code ist, den generator starten-Schleife bei 1 statt 0. Egal, das wird noch Arbeit, also +1.Nur für die alternative, da du schon 4 richtige Antworten.
Damit initialisieren Sie Ihre Variablen
min
undmax
können Sie entweder:if (i == 0 || a[i] > max)
und starten Sie die Schleife von 0.Den beiden anderen alternativen die ich liefere es Ihnen ermöglicht, sich mit Fällen, in denen die Daten sind noch nicht verfügbar. Zum Beispiel, wenn die Werte kommen von dem Benutzer oder dem Netzwerk oder was auch immer.
Dein problem liegt bei den min und max. Weisen Sie Ihnen Werte, die Sie nicht kennen. Sie füllen das array mit Werten von mehr als 0 und weniger als 100. Also, Warum nicht die Werte von min 100 und max als 0. So dass, wenn das Programm feststellt, eine Zahl, die größer oder kleiner als min oder max. Das Programm wird ändern Ihre Werte.
Ausgabe: