Zurück   klamm-Forum > klamm-Lose > Lose4Scripts > Lose4Scripts (erledigt)

 
 
LinkBack Themen-Optionen Ansicht
Alt 01.08.2006, 21:54:43   #1 (permalink)
9*UotD / 13*UotN
Benutzerbild von Olli

ID: 4117
Lose-Remote

Olli eine Nachricht über ICQ schicken
Reg: 21.04.2006
Beiträge: 3.468
Standard 50.000 für kurze C++-Hilfe

Hi,

habe zu diesem Quelltext eine Frage:
Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
#include <iostream.h> int main() { long int zahl = -1, k = 1; while (zahl <= 1) cin >> zahl; while (k < zahl) k *= 2; cout << k; return 0; }
Warum wird zahl mit -1 und nicht mit z.B. 0 initialisiert. Das Programm scheint trotzdem zu arbeiten.

Der erste, der mir ne Vernünftige Antwort darauf gibt, bekommt 50.000 Lose.

Gruß
Olli
 
Olli ist offline  
Alt 02.08.2006, 00:43:28   #2 (permalink)
.

ID: 129492
Lose-Remote
Reallife

Reg: 01.05.2006
Beiträge: 115
Standard

Ich würd mal sagen, dem Programmierer ist nix besseres eingefallen. zahl kann auch mit 0 oder 1 oder -999 intialisiert werden.
Ich nehm aber mal an, das der Programmierer die -1 (nicht in diesem Programm, sondern allgemein) verwendet um anzuzeigen, das die Variablen nicht verwendbar sind und ihnen vorher noch ein anderer Wert zugewiesen werden muss.
Ansonsten wie schon geschrieben, scheint das hier keine tieferen Sinn zu haben.
temporary inactive
Cyclon ist offline  
Alt 02.08.2006, 09:15:59   #3 (permalink)
Gesperrt

ID: 174911
Lose-Remote

mobby eine Nachricht über ICQ schicken mobby eine Nachricht über MSN schicken
Reg: 20.04.2006
Beiträge: 410
Standard

long's sind ganzzahlen im bereich von -2147483648 bis 2147483647... von daher kann man das ruhig mit -1 deklarieren!

und int's eigentlich das selbe nur nicht ganz so hohe zahlen undzwar von -32768 bis 32767

//edit

und warum das programm trotzdem arbeitet ist ganz einfach, weil er in der while schleife checkt pb die variable kleiner oder gleich 1 ist und da sie -1 ist und das programm läuft solange bis die zahl (durch die usereingabe) erhöht wird

//edit2

Das programm dürfte normalerweise eh nicht laufen da es std::cout und std::cin heisst es sei denn du schreibst unter den includes folgendes: "using namespace std;"...
 

Geändert von mobby (02.08.2006 um 09:25:26 Uhr)
mobby ist offline  
Alt 02.08.2006, 10:10:58   #4 (permalink)
Powerhamster
Benutzerbild von burnred

ID: 34739
Lose-Remote

burnred eine Nachricht über ICQ schicken burnred eine Nachricht über MSN schicken burnred eine Nachricht über Skype™ schicken
Reg: 04.05.2006
Beiträge: 681
Standard

In dem Fall erfüllt die -1 den Zweck das zahl beim ersten Schleifendurchlauf auch wirklich kleiner als 1 ist, denn Zweck hätte eine 0 auch erfüllt.

Wenn die Schleife mit k 32 ma durchläuft ist Schluss dann ist der maximale wert für signed long int erreicht, indem Fall würde man mit unsigned bis 64 Durchläufe kommen aber dann wäre auch Schluss... und rum verdoppeln sind die Bitschiebeoperatoren immernoch viel schneller als ein *=2
 
burnred ist offline  
Alt 02.08.2006, 17:08:45   #5 (permalink)
9*UotD / 13*UotN
Benutzerbild von Olli

ID: 4117
Lose-Remote

Olli eine Nachricht über ICQ schicken
Reg: 21.04.2006
Beiträge: 3.468
Standard

Zitat:
Zitat von mobby
//edit2

Das programm dürfte normalerweise eh nicht laufen da es std::cout und std::cin heisst es sei denn du schreibst unter den includes folgendes: "using namespace std;"...
Hi,

erst einmal habe ich allen 50k überwiesen. Vielen Dank an dieser Stelle, bin zwar nicht viel schlauer, aber in meiner Annahme wenigstens bestätigt ^^ Zu Dir mobby, das Programm läuft einwandfrei, auch ohne std:cout.

Ende hier.

Gruß
Olli
 
Olli ist offline Threadstarter  
Alt 02.08.2006, 17:11:35   #6 (permalink)
Gesperrt

ID: 174911
Lose-Remote

mobby eine Nachricht über ICQ schicken mobby eine Nachricht über MSN schicken
Reg: 20.04.2006
Beiträge: 410
Standard

ok das ist gut möglich aber es muesste zumindest warnungen ausgeben im compiler/linker!
 
mobby ist offline  
 

Gesponsorte Links

Anzeige


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[kurze hilfe WBB] NoSkill Lose4Scripts (erledigt) 1 20.02.2008 18:04:51
Kurze Hilfe. Abuquash Gott und die Welt 2 18.04.2007 01:10:18
[S] kurze Hilfe MiD Lose4Scripts (erledigt) 2 16.02.2007 14:51:16
Kurze Hilfe benötigt hampf Das wahre Leben 10 23.07.2006 23:55:37
[S] kurze hilfe bei paypalanbindung kangoo23 Lose4Scripts (erledigt) 1 30.06.2006 15:23:42


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:38:28 Uhr.