Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > C/C++
You last visited: Today at 19:03

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

Advertisement



Frage zu C++

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

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Oct 2010
Posts: 62
Received Thanks: 6
Frage zu C++

Hay..

Ich wollte grad eine Art "Rechner" in C++ Programmieren, nur leider funktioniert er nicht und ich weiß nicht warum.

Also bitte ich euch darum mir evtl. sagen zu können was ich falsch gemacht habe.

Code:
#include <iostream>

using namespace std;

int main()
{
int ergebnis;
int Seife;
int Baum;
int Orangensaftkonzentrat;
int Karotte;
int Schere;
int meine_Variablen = 0;
int a;
double b;
double c;
cout <<"Wähle ob du addieren(1), subtrahieren(2), multiplizieren(3) oder teilen(4) willst\n";
cin >> a;

    switch(a)
    {
    case 1:
        cout<<"Geben sie nun die erste Zahl ein.\n";
        cin >> b;
        cout<<"\nUnd nun die Zweite.\n";
        cin >> c;
        ergebnis = (b+c);
        if (ergebnis == 4) meine_Variablen = Seife;
        else if (ergebnis == 6) meine_Variablen = Baum;
        else if (ergebnis == 7) meine_Variablen = Orangensaftkonzentrat;
        else if (ergebnis == 3) meine_Variablen = Karotte;
        else if (ergebnis == 1) meine_Variablen = Schere;
        cout<<"Ergebnis:" << meine_Variablen << endl;
        break;
    case 2:
        cout<<"Geben sie nun die erste Zahl ein.\n";
        cin >> b;
        cout<<"\nUnd nun die Zweite.\n";
        cin >> c;
        ergebnis = (b-c);
        if (ergebnis == 4) meine_Variablen = Seife;
        else if (ergebnis == 6) meine_Variablen = Baum;
        else if (ergebnis == 7) meine_Variablen = Orangensaftkonzentrat;
        else if (ergebnis == 3) meine_Variablen = Karotte;
        else if (ergebnis == 1) meine_Variablen = Schere;
        cout<<"Ergebnis:" << meine_Variablen << endl;
        break;
    case 3:
        cout<<"Geben sie nun die erste Zahl ein.\n";
        cin >> b;
        cout<<"\nUnd nun die Zweite.\n";
        cin >> c;
        ergebnis = (b*c);
        if (ergebnis == 4) meine_Variablen = Seife;
        else if (ergebnis == 6) meine_Variablen = Baum;
        else if (ergebnis == 7) meine_Variablen = Orangensaftkonzentrat;
        else if (ergebnis == 3) meine_Variablen = Karotte;
        else if (ergebnis == 1) meine_Variablen = Schere;
        cout<<"Ergebnis:" << meine_Variablen << endl;
        break;
    case 4:
        cout<<"Geben sie nun die erste Zahl ein.\n";
        cin >> b;
        cout<<"\nUnd nun die Zweite.\n";
        cin >> c;
        ergebnis = (b/c);
        if (ergebnis == 4) meine_Variablen = Seife;
        else if (ergebnis == 6) meine_Variablen = Baum;
        else if (ergebnis == 7) meine_Variablen = Orangensaftkonzentrat;
        else if (ergebnis == 3) meine_Variablen = Karotte;
        else if (ergebnis == 1) meine_Variablen = Schere;
        cout<<"Ergebnis:" << meine_Variablen << endl;
        break;
    default:
        cout<<"Ihre Eingabe war ungueltig!\n\n";

        break;
    }

return 0;
}
Fragt mich nicht warum Baum, seife etc.

Freue mich auf jede Antwort, danke.
Black3x is offline  
Old 11/26/2010, 14:45   #2
 
elite*gold: 42
Join Date: Jun 2008
Posts: 5,425
Received Thanks: 1,888
Warum Baum und Seife etc?

Die Frage ist, was soll denn passieren? Du setzt meine_Variablen halt immer auf 0.
MoepMeep is offline  
Old 11/26/2010, 15:00   #3

 
djpromo's Avatar
 
elite*gold: 20
Join Date: Jul 2004
Posts: 5,468
Received Thanks: 1,993
Ist es nicht sogar so das er meine_variablen auf irgendwas setzt ? Ich meine doch das nicht initialisierte variablen irgendeinen random wert haben können.
djpromo is offline  
Thanks
1 User
Old 11/26/2010, 15:37   #4
 
elite*gold: 0
Join Date: Oct 2010
Posts: 62
Received Thanks: 6
Quote:
Originally Posted by djpromo View Post
Ist es nicht sogar so das er meine_variablen auf irgendwas setzt ? Ich meine doch das nicht initialisierte variablen irgendeinen random wert haben können.
Ich versteh jetzt nicht ganz was du meinst. Kannst das nochmal genauer erklären ?

@moepmeep Der Rechner soll, wenn er als ergebnis z.B. 4 hat, seife ausgeben.
Black3x is offline  
Old 11/26/2010, 16:26   #5
 
elite*gold: 42
Join Date: Jun 2008
Posts: 5,425
Received Thanks: 1,888
Quote:
Originally Posted by djpromo View Post
Ist es nicht sogar so das er meine_variablen auf irgendwas setzt ? Ich meine doch das nicht initialisierte variablen irgendeinen random wert haben können.
jein. Kommt immer auf den compiler an Bei Visual Studio ist es aber standartmäßig 0 und das nutzen wohl die meisten.



Du hast da etwas vollkommen falsch verstanden. Deklarier meine_Variablen als String und dann:
Code:
if(ergebnis==4) meine_Variablen = "Seife";
MoepMeep is offline  
Thanks
1 User
Old 11/26/2010, 16:43   #6
 
elite*gold: 0
Join Date: Oct 2010
Posts: 62
Received Thanks: 6
Quote:
Originally Posted by MoepMeep View Post
jein. Kommt immer auf den compiler an Bei Visual Studio ist es aber standartmäßig 0 und das nutzen wohl die meisten.



Du hast da etwas vollkommen falsch verstanden. Deklarier meine_Variablen als String und dann:
Code:
if(ergebnis==4) meine_Variablen = "Seife";
Danke .. hat super funktioniert.
Black3x is offline  
Old 11/29/2010, 14:21   #7
 
Bl@ze!'s Avatar
 
elite*gold: 240
Join Date: Dec 2006
Posts: 1,579
Received Thanks: 1,609
Quote:
Originally Posted by MoepMeep View Post
jein. Kommt immer auf den compiler an Bei Visual Studio ist es aber standartmäßig 0
Falsch.



Edit:

So sollte der Quelltext funktionieren (ungetestet)

Code:
#include <iostream>

using namespace std;

int main()
{
   int ergebnis;
   int Seife;
   int Baum;
   int Orangensaftkonzentrat;
   int Karotte;
   int Schere;
   std::string meine_Variablen;
   int a;
   double b;
   double c;
   cout <<"Wähle ob du addieren(1), subtrahieren(2), multiplizieren(3) oder teilen(4) willst\n";
   cin >> a;

    switch(a)
    {
    case 1:
        cout<<"Geben sie nun die erste Zahl ein.\n";
        cin >> b;
        cout<<"\nUnd nun die Zweite.\n";
        cin >> c;
        ergebnis = (b+c);
        if (ergebnis == 4) meine_Variablen = "Seife";
        else if (ergebnis == 6) meine_Variablen = "Baum";
        else if (ergebnis == 7) meine_Variablen = "Orangensaftkonzentrat";
        else if (ergebnis == 3) meine_Variablen = "Karotte";
        else if (ergebnis == 1) meine_Variablen = "Schere";
        cout<<"Ergebnis:" << meine_Variablen << endl;
        break;
    case 2:
        cout<<"Geben sie nun die erste Zahl ein.\n";
        cin >> b;
        cout<<"\nUnd nun die Zweite.\n";
        cin >> c;
        ergebnis = (b-c);
        if (ergebnis == 4) meine_Variablen = "Seife";
        else if (ergebnis == 6) meine_Variablen = "Baum";
        else if (ergebnis == 7) meine_Variablen = "Orangensaftkonzentrat";
        else if (ergebnis == 3) meine_Variablen = "Karotte";
        else if (ergebnis == 1) meine_Variablen = "Schere";
        cout<<"Ergebnis:" << meine_Variablen << endl;
        break;
    case 3:
        cout<<"Geben sie nun die erste Zahl ein.\n";
        cin >> b;
        cout<<"\nUnd nun die Zweite.\n";
        cin >> c;
        ergebnis = (b*c);
        if (ergebnis == 4) meine_Variablen = "Seife";
        else if (ergebnis == 6) meine_Variablen = "Baum";
        else if (ergebnis == 7) meine_Variablen = "Orangensaftkonzentrat";
        else if (ergebnis == 3) meine_Variablen = "Karotte";
        else if (ergebnis == 1) meine_Variablen = "Schere";
        cout<<"Ergebnis:" << meine_Variablen << endl;
        break;
    case 4:
        cout<<"Geben sie nun die erste Zahl ein.\n";
        cin >> b;
        cout<<"\nUnd nun die Zweite.\n";
        cin >> c;
        ergebnis = (b/c);
        if (ergebnis == 4) meine_Variablen = "Seife";
        else if (ergebnis == 6) meine_Variablen = "Baum";
        else if (ergebnis == 7) meine_Variablen = "Orangensaftkonzentrat";
        else if (ergebnis == 3) meine_Variablen = "Karotte";
        else if (ergebnis == 1) meine_Variablen = "Schere";
        cout<<"Ergebnis:" << meine_Variablen << endl;
        break;
    default:
        cout<<"Ihre Eingabe war ungueltig!\n\n";

        break;
    }

return 0;
}
Du musst "meine_Variablen" als string deklarieren (std::string).
Einen String fügst du eine Zeichenkette hinzu mit diesem Zeichen -> " <-

Beispiel:
std::string meinString = "Hallo";
Bl@ze! is offline  
Thanks
2 Users
Old 11/29/2010, 17:49   #8
 
elite*gold: 42
Join Date: Jun 2008
Posts: 5,425
Received Thanks: 1,888
Quote:
Originally Posted by Unkn0wn0x View Post
Falsch.
Stimmt, ist falsch. Grade selber überprüft, kA wie ich dadrauf gekommen bin o.O
MoepMeep is offline  
Old 11/29/2010, 19:14   #9
 
elite*gold: 0
Join Date: Oct 2010
Posts: 62
Received Thanks: 6
Quote:
Originally Posted by Unkn0wn0x View Post
Falsch.



Edit:

So sollte der Quelltext funktionieren (ungetestet)

Code:
#include <iostream>

using namespace std;

int main()
{
   int ergebnis;[COLOR="Red"]
   int Seife;
   int Baum;
   int Orangensaftkonzentrat;
   int Karotte;
   int Schere;[/COLOR]
   std::string meine_Variablen;
   int a;
   double b;
   double c;
   cout <<"Wähle ob du addieren(1), subtrahieren(2), multiplizieren(3) oder teilen(4) willst\n";
   cin >> a;

    switch(a)
    {
    case 1:
        cout<<"Geben sie nun die erste Zahl ein.\n";
        cin >> b;
        cout<<"\nUnd nun die Zweite.\n";
        cin >> c;
        ergebnis = (b+c);
        if (ergebnis == 4) meine_Variablen = "Seife";
        else if (ergebnis == 6) meine_Variablen = "Baum";
        else if (ergebnis == 7) meine_Variablen = "Orangensaftkonzentrat";
        else if (ergebnis == 3) meine_Variablen = "Karotte";
        else if (ergebnis == 1) meine_Variablen = "Schere";
        cout<<"Ergebnis:" << meine_Variablen << endl;
        break;
    case 2:
        cout<<"Geben sie nun die erste Zahl ein.\n";
        cin >> b;
        cout<<"\nUnd nun die Zweite.\n";
        cin >> c;
        ergebnis = (b-c);
        if (ergebnis == 4) meine_Variablen = "Seife";
        else if (ergebnis == 6) meine_Variablen = "Baum";
        else if (ergebnis == 7) meine_Variablen = "Orangensaftkonzentrat";
        else if (ergebnis == 3) meine_Variablen = "Karotte";
        else if (ergebnis == 1) meine_Variablen = "Schere";
        cout<<"Ergebnis:" << meine_Variablen << endl;
        break;
    case 3:
        cout<<"Geben sie nun die erste Zahl ein.\n";
        cin >> b;
        cout<<"\nUnd nun die Zweite.\n";
        cin >> c;
        ergebnis = (b*c);
        if (ergebnis == 4) meine_Variablen = "Seife";
        else if (ergebnis == 6) meine_Variablen = "Baum";
        else if (ergebnis == 7) meine_Variablen = "Orangensaftkonzentrat";
        else if (ergebnis == 3) meine_Variablen = "Karotte";
        else if (ergebnis == 1) meine_Variablen = "Schere";
        cout<<"Ergebnis:" << meine_Variablen << endl;
        break;
    case 4:
        cout<<"Geben sie nun die erste Zahl ein.\n";
        cin >> b;
        cout<<"\nUnd nun die Zweite.\n";
        cin >> c;
        ergebnis = (b/c);
        if (ergebnis == 4) meine_Variablen = "Seife";
        else if (ergebnis == 6) meine_Variablen = "Baum";
        else if (ergebnis == 7) meine_Variablen = "Orangensaftkonzentrat";
        else if (ergebnis == 3) meine_Variablen = "Karotte";
        else if (ergebnis == 1) meine_Variablen = "Schere";
        cout<<"Ergebnis:" << meine_Variablen << endl;
        break;
    default:
        cout<<"Ihre Eingabe war ungueltig!\n\n";

        break;
    }

return 0;
}
Du musst "meine_Variablen" als string deklarieren (std::string).
Einen String fügst du eine Zeichenkette hinzu mit diesem Zeichen -> " <-

Beispiel:
std::string meinString = "Hallo";
So sah das auch bei mir aus als ich das gemacht hab. Aber den string hab ich anders gemacht. Ich hab halt #include <string> und dann string meine_Variablen;

hat so auch super geklappt.

Edit: Was ich mich noch Frage ist: Warum schreibst du std::string wenn man das std schon als namespace da hat ?

Edit²: Den rot makierten Bereich hab ich auch noch weggelassen, weil es ja nichts bringt wenn ich was deklariere was man nicht braucht ^^
Black3x is offline  
Old 11/29/2010, 19:53   #10
 
Bl@ze!'s Avatar
 
elite*gold: 240
Join Date: Dec 2006
Posts: 1,579
Received Thanks: 1,609
std::string , schreibe ich aus Angewohnheit. Außerdem habe ich ehrlich nicht gesagt darauf geachtet, dass du den namespace bereits benutzt ;-)
Bl@ze! is offline  
Thanks
1 User
Old 11/29/2010, 19:56   #11
 
elite*gold: 0
Join Date: Oct 2010
Posts: 62
Received Thanks: 6
Achsu kay, danke.
Black3x is offline  
Old 11/30/2010, 14:36   #12
 
Strean's Avatar
 
elite*gold: 141
Join Date: Dec 2009
Posts: 554
Received Thanks: 3,920
nur noch als tipp da du umlaute verwendest:

PHP Code:
const unsigned char AE static_cast<unsigned char>(142);
const 
unsigned char ae static_cast<unsigned char>(132);
const 
unsigned char OE static_cast<unsigned char>(153);
const 
unsigned char oe static_cast<unsigned char>(148);
const 
unsigned char UE static_cast<unsigned char>(154);
const 
unsigned char ue static_cast<unsigned char>(129);
const 
unsigned char ss static_cast<unsigned char>(225); 
das einfach unter deinem using namespace std; einfügen

die umlaute lassen sich dann wie folt verwenden:

cout << "Meine M" << ue << "tze" << endl; // ue = ü

außerdme hast du in deinem code ziehmlich viele else if anwesiungen die nur zutreffen wenn das ergebnis wirklich eine der zahlen ist.

ich würde dir empfehlen noch eine normale else anweisung zu machen die zutrifft falls keine zahl getroffen wurde.

außerdem würde ich vor dein return 0; noch ein system("pause"); setzen ist allerdings in deinem code nicht notwenig :P
Strean is offline  
Thanks
1 User
Old 11/30/2010, 15:57   #13
 
elite*gold: 0
Join Date: Oct 2010
Posts: 62
Received Thanks: 6
Quote:
Originally Posted by Strean View Post
nur noch als tipp da du umlaute verwendest:

PHP Code:
const unsigned char AE static_cast<unsigned char>(142);
const 
unsigned char ae static_cast<unsigned char>(132);
const 
unsigned char OE static_cast<unsigned char>(153);
const 
unsigned char oe static_cast<unsigned char>(148);
const 
unsigned char UE static_cast<unsigned char>(154);
const 
unsigned char ue static_cast<unsigned char>(129);
const 
unsigned char ss static_cast<unsigned char>(225); 
das einfach unter deinem using namespace std; einfügen

die umlaute lassen sich dann wie folt verwenden:

cout << "Meine M" << ue << "tze" << endl; // ue = ü

außerdme hast du in deinem code ziehmlich viele else if anwesiungen die nur zutreffen wenn das ergebnis wirklich eine der zahlen ist.

ich würde dir empfehlen noch eine normale else anweisung zu machen die zutrifft falls keine zahl getroffen wurde.

außerdem würde ich vor dein return 0; noch ein system("pause"); setzen ist allerdings in deinem code nicht notwenig :P
Danke. Allerdings das mit dem system("pause") brauche ich in meinem aktuellen code nicht, weil ich noch ne schleife eingebaut habe. Aber trotzdem Danke
Black3x is offline  
Reply


Similar Threads Similar Threads
Frage zum 173mt2 geht net regestrieren wegen Zeichnung oder ist das frage.
04/02/2009 - Metin2 Private Server - 2 Replies
es geht einfach net.kann jemand helfen oder übersetzung geben bitte.



All times are GMT +1. The time now is 19:03.


Powered by vBulletin®
Copyright ©2000 - 2026, 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 ©2026 elitepvpers All Rights Reserved.