Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

NaimH

Frischling

  • »NaimH« ist der Autor dieses Themas

Beiträge: 5

Wohnort: Berlin

Beruf: Schüler

  • Private Nachricht senden

1

01.07.2010, 11:28

Fehler im Programm

Hi

ich bin neu hier und habe jetzt gerade mein zweites kleines Programm
geschrieben.
Bei dem gibt es gleich ein Problem. Das Programm fragt nach der
Lieblingszahl, man kann die Zahl auch eintippen, aber wenn die Zahl zu groß ist kommt immer die gleiche Zahl im Minusbereich ?( . Wäre nett wenn ihr mir sagen könntet, wie man das richtig hinbekommt.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
#include <iostream>

int main() {
    std::cout << "What is your favorite number?" << std::endl;
    int iNumber;
    std::cin >> iNumber;
    std::cout << "Your favorite number is " << iNumber << std::endl;
    return 0;
}


MFG
NaimH
:) 8) :thumbup: :D ?(

2

01.07.2010, 11:44

Das liegt am Datentypen. Der kann nur Zahlen eines bestimmten Bereiches aufnehmen. Kannst ja mal in der MSDN nachschauen. Überschreitet man den Bereich, gibts einen Überlauf und die Zahl geht ins Minus. Es gibt für dich 2 Möglichkeiten:

C-/C++-Quelltext

1
2
unsigned int
__int64 // Hier kann man sonst auch unsigned noch vorsetzen, um einen größeren positiven Bereich zu erhalten
Ich weiß es dauert viel zu lange, aber ich habe echt nur Pech. Habe mir heute mal eben im Zeigefinger Nerv und Sehne durchtrennt. Dennoch kann es nicht mehr all zu lange dauern mit dem Tutorial. Außerdem kamen auch noch Prüfungen und dergleichen dazwischen.
Klatscht die Hopper an die Wand, Deutschland ist ein Raverland! :D

NaimH

Frischling

  • »NaimH« ist der Autor dieses Themas

Beiträge: 5

Wohnort: Berlin

Beruf: Schüler

  • Private Nachricht senden

3

01.07.2010, 11:51

Danke, aber jetzt gibt es auch eine Oberkante der Plus Zahlen.(hab die erste Möglichkeit genommen)
Kann man irgendwie die Oberkante abschaffen, oder geht das nicht? :S
:) 8) :thumbup: :D ?(

4

01.07.2010, 12:07

Das geht nicht. Es gibt Wege die Oberkante zu erhöhen, aber alles was über normale Datentypen hinaus geht sollte wirklich bedacht werden. Braucht man wirklich einen so großen Bereich wirklich? Meistens nicht. Wenn doch dann kann man auch ein float oder double nehmen und kommt damit häufig auch aus.

P.S. int64 unterstützt Zahlen im Bereich von -9.223.372.036.854.775.808 bis 9.223.372.036.854.775.807
die Variante ohne Vorzeichen: 0 bis 18.446.744.073.709.551.615

NaimH

Frischling

  • »NaimH« ist der Autor dieses Themas

Beiträge: 5

Wohnort: Berlin

Beruf: Schüler

  • Private Nachricht senden

5

01.07.2010, 12:10

Nein brauche ich auch, war ja nur Theorie. Wollte es nur wissen.
Danke für die Hilfe.
:) 8) :thumbup: :D ?(

6

01.07.2010, 12:14

Sollte auch keine Kritik an deiner Frage sein. ;) Spricht ja für dich, wenn du interessiert bist.

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

7

01.07.2010, 12:50

ich empfehle dir ein gutes buch durch zu lesen, da wurd das nämlich erklärt.
eine obergrenze gibt es weil die zahl ja gespeichert werden muss. ein bit kann zwei werte speichern.(0, 1) dezimal: 0-1 wenn du zwei bits hast gibt es doppelt so viele kombinationen(00, 01, 10, 11)dezimal: 0-3 und bei drei bits wieder das doppelte (000, 001, 010, 011, 100, 101, 110, 111)dezimal 0-7 usw.
du kannst ja mit 3 dezimalstellen auch nicht mehr als 1000=10³ werte aufschreiben oder? wenn doch wärs toll wenn du uns das zeigst, da kriegsu sicher nen nobelpreis für :D

edit: achja willkommen im forum^^
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Werbeanzeige