Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 18:54

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Frage Array

Discussion on Frage Array within the C/C++ forum part of the Coders Den category.

Closed Thread
 
Old   #1
 
KingwondA's Avatar
 
elite*gold: 312
Join Date: May 2013
Posts: 449
Received Thanks: 45
Frage Array

Heey,
ich wollte Fragen warum ein Level-- zur Index Korregatur an die jeweilige Stelle hingehört.

Wird mit dem Level-- nur noch von 0 bis 4 gezählt oder wie??
- Also Passe ich das Level dem Array an -

Code:
Code:
#include <iostream>

using namespace std;

// Hauptprogramm
//
int main ()
{
	// Variablen
	//
	int Bonus[5];
	int Level;

	// Bonuspunkte für jeden Level festlegen
	Bonus [0] = 100;
	Bonus [1] = 150;
	Bonus [2] = 250;
	Bonus [3] = 400;
	Bonus [4] = 600;

	// Level abfragen
	do
	{
		cout << "Welcher Level: ";
		cin >> Level;
	} while (Level < 1 || Level > 5);

	// Bonuspunkte anzeigen
	 Level--;  // Index korrigieren

	cout << "Bonuspunkte: " << Bonus[Level] << endl;

	return 0;
}
KingwondA is offline  
Old 03/19/2014, 19:07   #2
 
elite*gold: 1000
Join Date: Apr 2012
Posts: 1,003
Received Thanks: 208
Level-- := (Level = Level-1)

Also ja.
qkuh is offline  
Old 03/19/2014, 19:08   #3
 
​Tension's Avatar
 
elite*gold: 110
Join Date: Jun 2013
Posts: 599
Received Thanks: 510
Quote:
Originally Posted by KingwondA View Post
Wird mit dem Level-- nur noch von 0 bis 4 gezählt oder wie??
- Also Passe ich das Level dem Array an -
Ja sonst würdest du ja von 1 - 5 Zählen jedoch fangen Arrays bei 0 an.
​Tension is offline  
Old 03/19/2014, 23:44   #4
 
KingwondA's Avatar
 
elite*gold: 312
Join Date: May 2013
Posts: 449
Received Thanks: 45
Danke, ich wollte nur noch mal auf Nummer sicher gehen
Nicht dass ich mir was falsches anlerne.
KingwondA is offline  
Old 03/20/2014, 16:38   #5
 
elite*gold: 0
Join Date: Apr 2010
Posts: 2,832
Received Thanks: 4,152
Code:
	// Level abfragen
	do
	{
		cout << "Welcher Level: ";
		cin >> Level;
	} while (Level < 1 || Level > 5);
der Code Teil macht absolut keinen Sinn.
Du benutzt eine while schleife als if abfrage, die allerdings erst anschließend abgefragt wird?
Sollte das Level (warum auch immer) bei niedriger als 1 oder höher als 5 sein, endet das ganze in einer endlos schleife.

Ich denke folgendes war dein Plan...

Code:
#include <iostream>

using namespace std;

// Hauptprogramm
//
int main ()
{
	// Variablen
	//
	int Bonus[5];
	int Level;

	// Bonuspunkte für jeden Level festlegen
	Bonus [0] = 100;
	Bonus [1] = 150;
	Bonus [2] = 250;
	Bonus [3] = 400;
	Bonus [4] = 600;

	// Level abfragen
	if(Level >= 1 && Level <= 5)
	{
		cout << "Welcher Level: ";
		cin >> Level;
		
		// Bonuspunkte anzeigen
		//Macht keinen Sinn Level zu reduzieren, ansonsten müsstest du es auch wieder erhöhen
		//cout << "Bonuspunkte: " << Bonus[(Level - 1)] << endl;
		Level--;
		cout << "Bonuspunkte: " << Bonus[Level] << endl;
		Level++; //Korrektur

	}else
	{
		//Level ausshalb des array bereichs
	}

	return 0;
}
Elektrochemie is offline  
Old 03/20/2014, 17:10   #6
 
elite*gold: 46
Join Date: Oct 2010
Posts: 782
Received Thanks: 525
Quote:
Originally Posted by Elektrochemie View Post
Code:
	// Level abfragen
	do
	{
		cout << "Welcher Level: ";
		cin >> Level;
	} while (Level < 1 || Level > 5);
der Code Teil macht absolut keinen Sinn.
Du benutzt eine while schleife als if abfrage, die allerdings erst anschließend abgefragt wird?
Sollte das Level (warum auch immer) bei niedriger als 1 oder höher als 5 sein, endet das ganze in einer endlos schleife.
Nope. Seins macht Sinn (im Gegensatz zu deinem) und endet nicht in einer Endlosschleife außer der Nutzer ist so dumm und gibt immer wieder etwas was niedriger als 1 oder höher als 5 ist (und das ist dann auch keine Endlosschleife). So wie er es hat hat der Nutzer keine andere Möglichkeit als etwas zwischen 1 und 5 einzugeben (was wahrscheinlich sein Ziel war). Das die erst anschließend abgefragt wird macht auch Sinn weil Level sonst bei der ersten Abfrage einfach nix ist. Lern doch bitte selbst erstmal die Sprache (oder vielleicht überhaupt wie man programmiert und wie man arrays benutzt) bevor du hier Leute verbessern möchtest.

Edit: Habe mir deins nochmal angeguckt und meine Kommentare hinzugefügt (und deine entfernt).
Quote:
Originally Posted by Elektrochemie View Post
Code:
#include <iostream>

using namespace std;


int main ()
{

	int Bonus[5];
	int Level;


	Bonus [0] = 100;
	Bonus [1] = 150;
	Bonus [2] = 250;
	Bonus [3] = 400;
	Bonus [4] = 600;


	if(Level >= 1 && Level <= 5) // immer false weil level standartmäßig 0 ist. GJ
	{
// auch schön das man erst guckt was das level ist und dann das level abfragt. Logic FTW.
		cout << "Welcher Level: ";
		cin >> Level;

//natürlich macht es Sinn das Level zu reduzieren sonst lässt er das 0. Element von der Array ungenutzt.		
		Level--;
		cout << "Bonuspunkte: " << Bonus[Level] << endl;
		Level++; //Korrektur // <- WARUM ? Er kann doch Level-- so lassen, falls er das später nochmals als index braucht. Nur wenn er es dem Nutzer ausgibt muss er +1 rechnen. Ist aber immer noch besser in einer Funktion die z.B. printLevel() heißt das einmal + 1 zu rechnen anstatt immer Level-- und Level++ oder zur indexierung immer Bonus[Level-1] zu schreiben.

	}else{/*blablabla... wird btw immer ausgeführt...*/}
	return 0;
}
th0rex is offline  
Thanks
3 Users
Old 03/20/2014, 17:42   #7
 
elite*gold: 0
Join Date: Aug 2012
Posts: 236
Received Thanks: 94
Quote:
Originally Posted by omitma View Post
Code:
if(Level >= 1 && Level <= 5) // immer false weil level standartmäßig 0 ist. GJ
Es ist sogar noch schlimmer: Das ist undefiniertes Verhalten, der Compiler darf die Festplatte formatieren. Nicht initialisierte Variablen dürfen nicht gelesen werden. Nur statische und globale Variablen werden mit einem Standardwert gefüllt.
Tasiro is offline  
Thanks
5 Users
Old 03/20/2014, 17:50   #8
 
Schlüsselbein's Avatar
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
Ich warte immernoch auf den Tag an welchem zB Microsoft wirklich undefiniertes Verhalten implementiert so ganz im Sinne von hier und da mal was löschen, neuen Benutzer anlegen, Hintergrund ändern, Musik abspielen, die Maus spiegeln etc.
Hätte sogar lerneffekt.
Schlüsselbein is offline  
Thanks
4 Users
Old 03/20/2014, 17:51   #9


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Quote:
Originally Posted by Elektrochemie
//Macht keinen Sinn Level zu reduzieren, ansonsten müsstest du es auch wieder erhöhen
//cout << "Bonuspunkte: " << Bonus[(Level - 1)] << endl;
Gut, dass du den eigentlichen Inhalt dieses Threads nicht einmal gelesen hast. Ansonsten hättest du sogar etwas gelernt. Da steht nämlich schon, warum das seine Richtigkeit hat.
MrSm!th is offline  
Thanks
3 Users
Old 03/20/2014, 21:54   #10
 
elite*gold: 0
Join Date: Apr 2010
Posts: 2,832
Received Thanks: 4,152
Immer mit der Ruhe, hatte übersehen / nicht realisiert dass der Spieler das Level eintippt.
Elektrochemie is offline  
Old 03/21/2014, 13:26   #11
 
Tyrar's Avatar
 
elite*gold: 0
Join Date: Oct 2008
Posts: 1,637
Received Thanks: 1,119
Quote:
Originally Posted by Elektrochemie View Post
Immer mit der Ruhe, hatte übersehen / nicht realisiert dass der Spieler das Level eintippt.
Dennoch ergibt sich daraus keine Erklärung jemandem der (anscheinend) noch weit am Anfang der Sprache ist einen solchen Code vor zu setzen. Der Code des TE ist 100% korrekt, stilistische Dinge außen vor gelassen.

Um da noch etwa zu sagen:
Das Array könnte man auch anders initialisieren
Code:
const int Bonus[5] = {
    100,
    150,
    250,
    400,
    500
};
macht aber hier keinen besonderen Unterschied, außer, dass es ein wenig Schreibarbeit abnimmt
Ich persönlich präferiere auch die Usereingaben zu lassen wie sie sind und Änderungen wenn nötig in einer extra Variable zu speichern. In diesem Fall wäre ich aber mit
Code:
cout << "Bonuspunkte: " << Bonus[Level - 1] << endl;
da ran gegangen.

Das einzige was mich aber an diesem Thread wundert ist, dass sich noch niemand über das "using namespace std;" beschwert hat. Dann hole ich das jetzt nach: das ist ganz böse!
Tyrar is offline  
Thanks
3 Users
Old 03/21/2014, 17:18   #12
 
elite*gold: 0
Join Date: Apr 2010
Posts: 2,832
Received Thanks: 4,152
Quote:
Originally Posted by Tyrar View Post
Dennoch ergibt sich daraus keine Erklärung jemandem der (anscheinend) noch weit am Anfang der Sprache ist einen solchen Code vor zu setzen. Der Code des TE ist 100% korrekt, stilistische Dinge außen vor gelassen.
... wenn man, wie ich bereits geschrieben hatte, davon ausging dass das Level übergeben wurde und nicht per cin eingetippt wird, ergibt der Code schon Sinn.
Aber darauf hätte man, ausgehend von meinem Code, auch nicht draufkommen können, wa?
Ersetzt man das cin >>´durch ein cout << und übergibt den Wert, macht das alles Sinn, holy shit.
Bis auf die inkrementierung und dekrementierung, aber ist ja nicht so als hätte ich genau das gleiche wie du ( cout << "Bonuspunkte: " << Bonus[Level - 1] << endl; ) ausgekommentiert (damit er nicht verwirrt) geschrieben.
Welches dann natürlich vom lieben omitma rausgelöscht wurde, nur damit er dann die Inkrementierung ankreiden kann. Herrlich.

Wie man nur aus jedem noch so kleinem Fehler die Scheisse rausflamen kann. Epvp at its best <3

Quote:
Originally Posted by omitma View Post
Lern doch bitte selbst erstmal die Sprache (oder vielleicht überhaupt wie man programmiert und wie man arrays benutzt) bevor du hier Leute verbessern möchtest.
Lustiges Kerlchen bist du. Meld dich wenn ein Spiel von dir bei Steam Greenlight bekommt, dann reden wir weiter
Elektrochemie is offline  
Old 03/21/2014, 17:41   #13


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Schwanzvergleich hard?
Ich denke hier ist alles geklärt.
MrSm!th is offline  
Thanks
3 Users
Closed Thread


Similar Threads Similar Threads
[Frage] dword to Array of Bytes
11/26/2013 - AutoIt - 1 Replies
Hey elitepvpers, gibt es eine UDF mit der man eine dword value in AoB umwandeln kann. wie 2000000 zu \x02\x00\x00\x00\x00\x00\x00 Immomemt hab ich nur String to AoB. Ich danke euch schonmal im voraus für eure Hilfe.
[Frage] String zu Array of Byte
02/28/2012 - AutoIt - 1 Replies
- Hat sich geklärt. Das Thema kann geschlossen werden -
[Frage]File Lines in Array?
02/03/2011 - AutoIt - 4 Replies
Hey Com ich hab mal ne Frage undzwar wie ich die Lines aus einer File auslesen und den Inhalt sowie die Anzahl in ein Array schreiben kann. Hab leider noch nicht allzuviel mit Arrays gearbeitet. MfG, BlackHybrid
java - switch -> case frage [array]
12/29/2010 - General Coding - 6 Replies
hey hey... hab ein kleines problem, mit der switch - case abfrage mit nutzen von arrays... switch (zuf){ case wetten:uebereinstimmungen = 1;break; } zeigt der mir nen fehler an , mit ner einfachen if-abfrage klappt es zwar, aber sieht mit switch-case sauberer aus, da es mehrere sind...



All times are GMT +1. The time now is 18:54.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.