Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 06:27

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

Advertisement



C Anfänger braucht hilfe :)

Discussion on C Anfänger braucht hilfe :) within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
xXFunyXx's Avatar
 
elite*gold: 150
Join Date: Feb 2010
Posts: 42
Received Thanks: 18
C Anfänger braucht hilfe :)

Also, ich versuche mich gerade ein bissl in C. Bin da noch ganz am Anfang. Ich habe mir ein TUT durchgelesen und habe einfach mal losgelegt, weil ich so am besten lerne, aber irgentwie will das nicht so ganz klappen. ^^

Ich wollte mir ein ganz simplen Rechner basteln:

Code:
#include <stdio.h>

int main()

{
    int eingabe=0, zahl1=0, zahl2=0;


    printf ("\nBitte die erste Zahl eingeben: \n");
    scanf ("%d", &zahl1);

    printf ("\nBitte + - * oder : eingeben: \n");
    scanf ("%d", &eingabe);

    printf ("\nBitte die zweite Zahl eingeben: \n");
    scanf ("%d", &zahl2);

    if (eingabe = "+")
        printf ("Ergebnis: %d", zahl1 + zahl2);
    else{
        if (eingabe = "-")
            printf ("Ergebnis: %d", zahl1 - zahl2);
        else{
            if (eingabe = "*")
                printf ("Ergebnis: %d", zahl1 * zahl2);
            else{
                if (eingabe = ":")
                    printf ("Ergebnis: %d", zahl1 / zahl2);
            }
        }
    }
    return 0;
}
Der Spukt mir aber 4 Warnungen aus.
Mag mir da mal jemand helfen?
xXFunyXx is offline  
Old 06/07/2010, 20:01   #2
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Quote:
Originally Posted by xXFunyXx View Post
Also, ich versuche mich gerade ein bissl in C. Bin da noch ganz am Anfang. Ich habe mir ein TUT durchgelesen und habe einfach mal losgelegt, weil ich so am besten lerne, aber irgentwie will das nicht so ganz klappen. ^^

Ich wollte mir ein ganz simplen Rechner basteln:

Code:
#include <stdio.h>

int main()

{
    int eingabe=0, zahl1=0, zahl2=0;


    printf ("\nBitte die erste Zahl eingeben: \n");
    scanf ("%d", &zahl1);

    printf ("\nBitte + - * oder : eingeben: \n");
    scanf ("%d", &eingabe);

    printf ("\nBitte die zweite Zahl eingeben: \n");
    scanf ("%d", &zahl2);

    if (eingabe = "+")
        printf ("Ergebnis: %d", zahl1 + zahl2);
    else{
        if (eingabe = "-")
            printf ("Ergebnis: %d", zahl1 - zahl2);
        else{
            if (eingabe = "*")
                printf ("Ergebnis: %d", zahl1 * zahl2);
            else{
                if (eingabe = ":")
                    printf ("Ergebnis: %d", zahl1 / zahl2);
            }
        }
    }
    return 0;
}
Der Spukt mir aber 4 Warnungen aus.
Mag mir da mal jemand helfen?
Das sind keinen Warnungen, sondern Errors .
Du darfst bei den Überprüfungen von 2 Werten nie 1 = schreiben , da es sonst als Wertzuweisung interpretiert wird :
Code:
#include <stdio.h>

int main()

{
    int eingabe=0, zahl1=0, zahl2=0;


    printf ("\nBitte die erste Zahl eingeben: \n");
    scanf ("%d", &zahl1);

    printf ("\nBitte + - * oder : eingeben: \n");
    scanf ("%d", &eingabe);

    printf ("\nBitte die zweite Zahl eingeben: \n");
    scanf ("%d", &zahl2);

    if (eingabe == "+")
        printf ("Ergebnis: %d", zahl1 + zahl2);
    else{
        if (eingabe == "-")
            printf ("Ergebnis: %d", zahl1 - zahl2);
        else{
            if (eingabe == "*")
                printf ("Ergebnis: %d", zahl1 * zahl2);
            else{
                if (eingabe == ":")
                    printf ("Ergebnis: %d", zahl1 / zahl2);
            }
        }
    }
    return 0;
}
Shadow992 is offline  
Thanks
1 User
Old 06/07/2010, 20:17   #3
 
xNopex's Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 827
Received Thanks: 471
Quote:
Das sind keinen Warnungen, sondern Errors .
Nein es sind Warnungen. Prinzipiell ist es erlaubt, z.B. folgendes zu schreiben:


Code:
if( a = 1 )
//do sth.

Nur ist deine if-Abfrage damit völlig sinnlos, da der Ausdruck immer als wahr interpretiert wird und so immer der Code der innerhalb der if-Abfrage steht ausgeführt wird.
Aber es ist kein Fehler Trotzdem hat der Schreiber über mir recht. Um eben die Verwechslung zwischen Zuweisung und Abfrage auszuschließen, verwendet man hier zwei "=".
xNopex is offline  
Thanks
1 User
Old 06/07/2010, 20:39   #4


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
Quote:
Originally Posted by xXFunyXx View Post
Code:
if (eingabe = ":")
Und um die beiden noch zu ergänzen:

Gaaanz böser Fehler!

Hiermit vergleichst du nicht den String selbst, sondern den Zeiger, der auf ihn zeigt (in C/C++ ist ein String einfach ein Zeiger, der auf eine Kette von Zeichen zeigt)!

Wenn du also die Eingabe in den ASCII Wert konverierst, musst du
Code:
if(eingabe == ':')
schreiben.
Damit wird der ASCII Wert des Zeichens ":" genommen, anstatt einem Zeiger auf das Zeichen ":".
MrSm!th is offline  
Thanks
1 User
Old 06/07/2010, 21:33   #5
 
elite*gold: 0
Join Date: May 2010
Posts: 793
Received Thanks: 268
ausserdem würde ich die geschweifeten klammern nach den else weglassen, die sind in den meisten fällen unnötig un verwirren nur:


Code:
#include <stdio.h>
int main()
{
    int zahl1=0, zahl2=0;
    char eingabe;// <-- wenn eingabe ein char sein soll auch als solches deklarieren


    printf ("\nBitte die erste Zahl eingeben: \n");
    scanf ("%d", &zahl1);

    printf ("\nBitte + - * oder : eingeben: \n");
    //scanf ("%c", &eingabe); hier muss daür gesorgt werden dass er nicht die entertaste als nöchstes zeichen nimmt, der einfachste, wenn auch nicht der schönste weg ist, einach noch ein zweitesscanf;    
    scanf ("%c", &eingabe);// <-- "%c" für char einlasen

    printf ("\nBitte die zweite Zahl eingeben: \n");
    scanf ("%d", &zahl2);

    if (eingabe == '+')//<-  '+' statt "+"
        printf ("Ergebnis: %d", zahl1 + zahl2);
    else if (eingabe == '-')//<- kein überflüssigen klammern 
        printf ("Ergebnis: %d", zahl1 - zahl2);
    else if (eingabe == '*')
        printf ("Ergebnis: %d", zahl1 * zahl2);
    else if (eingabe == ':')
        printf ("Ergebnis: %d", zahl1 / zahl2);
    else
        printf ("Ungültige Eingabe");
    return 0;
}
nkkk is offline  
Thanks
1 User
Old 06/08/2010, 20:20   #6
 
xXFunyXx's Avatar
 
elite*gold: 150
Join Date: Feb 2010
Posts: 42
Received Thanks: 18
Vielen Dank für eure Hilfe.
Ich glaube ich muss da doch noch etwas Theorie machen.

Wenn mir jemand ein gutes TUT empfehlen kann, immer her damit. ^^
xXFunyXx is offline  
Old 06/08/2010, 20:35   #7
 
elite*gold: 271
Join Date: Mar 2008
Posts: 9,459
Received Thanks: 2,082
lesen hilft...
Mark- is offline  
Old 06/08/2010, 20:43   #8
 
xXFunyXx's Avatar
 
elite*gold: 150
Join Date: Feb 2010
Posts: 42
Received Thanks: 18
Quote:
Originally Posted by Spacii View Post
lesen hilft...
Schon klar, aber vielleicht hat ja jemand ein anderes TUT, das er/sie mir empfehlen kann.
xXFunyXx is offline  
Old 06/08/2010, 20:48   #9
 
elite*gold: 271
Join Date: Mar 2008
Posts: 9,459
Received Thanks: 2,082
wenn jemand hier ein zu empfehlendes tut hätte würde er es dort posten oder?
ansonsten empfehle ich dir Bücher(die man im Laden kauft)
Mark- is offline  
Old 06/08/2010, 21:33   #10
 
elite*gold: 0
Join Date: May 2010
Posts: 793
Received Thanks: 268
Quote:
Originally Posted by phrenesis View Post
**** yeah :/
Code:
int*_;scanf("%d%c%d", &_[0], &_[1], &_[2]);printf("=%d",(_[1]=='+')?_[0]+_[2]:(_[1]=='-')?_[0]-_[2]:(_[1]=='*')?_[0]*_[2]:_[0]/_[2]);
so sollte man es lieber nicht machen, wennman will das man(oder irgendwer anders) den code am nächsten tag noch versteht:P

ausserdem is er ziemlich unsicher, da die variable _ igrendwohin im speicher zeigt.
nkkk is offline  
Old 06/08/2010, 21:40   #11
 
elite*gold: 0
Join Date: Mar 2008
Posts: 747
Received Thanks: 245
Ein tutorial für C was ich für die grundlagen recht gut fand ist das .
Akorn is offline  
Thanks
1 User
Old 06/08/2010, 22:37   #12
 
xXFunyXx's Avatar
 
elite*gold: 150
Join Date: Feb 2010
Posts: 42
Received Thanks: 18
Quote:
Originally Posted by phrenesis View Post
**** yeah :/
Code:
int*_;scanf("%d%c%d", &_[0], &_[1], &_[2]);printf("=%d",(_[1]=='+')?_[0]+_[2]:(_[1]=='-')?_[0]-_[2]:(_[1]=='*')?_[0]*_[2]:_[0]/_[2]);
Nicht unbedingt für Anfänger geeignet ...

@Akorn Danke dir
xXFunyXx is offline  
Reply


Similar Threads Similar Threads
Cheat Engine, Anfänger braucht Hilfe
05/18/2015 - Guild Wars - 4 Replies
So, Hallo, Und zwar möchte ich mit Cheat Engine den Inhalt einer Speicheradresse verändern. Wäre nett wenn mir das jemand erklären könnte.
Wie lange braucht ein Anfänger auf 60 ?
08/03/2010 - Flyff - 12 Replies
Siehe oben danke im vorraus
wow anfänger braucht hilfe
07/25/2010 - World of Warcraft - 11 Replies
hey also ich habe mir nun auch wow + tbc geholt und wollte mal fragen ob wer lust hat mir ein bisschen zu helfen ich habe vorher noch kein wow gespielt und ihr mir vielleicht ein bisschen erklären könntet wie man schnell hoch kommt wann und wo die ersten raids sind usw ich bin nachtelf schurke auf den realm Ysera ich habe auch ts skype und icq ihr könnt mich ja gerne mal anschreiben ... p.s. jetzt kommt mir bitte nicht mit lass es lieber sein zu große sucht gefahr etc. ich weiß was ich...
Blader anfänger braucht hilfe
03/20/2010 - Cabal Private Server - 3 Replies
So hallo ich habe auf GPCabal mal angefangen bin mit meinem blader schon level 60 nach 2-3 tagen bin aber immernoch novice und würde gerne aufsteigen aber ich habe leider keine Ahnung wie hab schon gegoogelt und nichts gscheittes gefunden wär nett von euch wenn ihr es mir erklärt. MFG
anfänger braucht hilfe beim botten
03/23/2009 - GW Bots - 2 Replies
hey leute ^^ hab mich hier nurma angemeldet um nen bot runterzulade und möchte jetzt auch gerne ma selbst mitm botten anfangen^^ kann mir da ma wer die wichtigsten/alle befehle von autoit und wie man des richtig benutzt aufschreiben ? auf deutch bitte :D danke schonma im vorraus ^^



All times are GMT +1. The time now is 06:27.


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.