Es sieht aus wie Sie Überlauf Probleme haben. Der maximale Wert für den langen Typ beträgt 2.147.483.647 auf 32-Bit-Systemen und unter Windows 64 Bit (siehe this reference). Wenn Sie alle eingegebenen Werte addieren, erhalten Sie 3.001,208,382. Ich bin in der Lage, Ihren Fehler (min
ist negativ) auf meinem Mac zu reproduzieren, indem Sie long
zu int
(wodurch Überlauf versucht, die Zahlen als 32-Bit-Werte speichern) zu ändern. Versuchen
long a[5], max=0, min=10000, sum;
zu
long long a[5], max=0, min=10000, sum; // long long is 64bit on Win
verändern und sehen, wenn Sie nicht-negative Werte erhalten. Da es in Ihrem Algorithmus keine Subtraktion gibt und Sie nur positive Werte eingegeben haben, ist der Überlauf nur möglich, wenn sum
negativ ist.
Auch mit den eingegebenen Zahlen sum
wird nie weniger als 10000
sein. Ich würde vorschlagen, Ihre Min und Max anders zu initialisieren. Vielleicht setzen Sie min
und max
gleich sum
nach der ersten inneren Schleife Iteration.
Es wäre am besten, wenn Sie den Code und die Ausgabe in die Frage stellen würden. Dann können die Leute den Code kopieren und einfügen und anschauen. – nalyd88
Bitte fügen Sie den formatierten Code in die ursprüngliche Frage ein. – DyZ
Sie sollten auch an Ihrer Codeausrichtung arbeiten. Ich bin mir sicher, dass es Bugs gibt, die du wegen deiner schrecklichen Codeausrichtung einfach verpasst hast. –