Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Advanced Developers Conference     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: DOS und Win32-Konsole ::  Übungsprogramm macht Probleme  
Gehen Sie zu Seite 1, 2  Weiter
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
bierdosenhalter
Mitglied

Benutzerprofil
Anmeldungsdatum: 12.08.2010
Beiträge: 7
Beitrag bierdosenhalter Mitglied 13:10:21 29.08.2010   Titel:   Übungsprogramm macht Probleme            Zitieren

Tagchen, ich bin es mal wieder.
Ich schreibe gerade ein kleines Übungsprogramm.

Es soll über die Konsole laufen und eine ganz einfache Prozentrechnung mit einer unbekannten Zahl durchführen.

Leider sind meine C Kenntnisse wirklich sehr bescheiden, deshalb wird so einiges nicht optimal sein. Aber ich wollte halt was fertigbringen, bevor ich ein halbes Buch durchgelesen habe. ;)

Es gab jetzt beim kompilieren einen ganzen Haufen Fehler und Warnungen.

Einige Fehler oder Warnungen verstehe ich überhaupt nicht. Das Meiste habe ich selbst schon entfernt, es waren oft Flüchtigkeitsfehler oder Sachen, die ich vergessen hatte (ach, da muss ein ; hin?), aber nun bin ich relativ am Ende angekommen und weiß nicht weiter.

Ich würde mich sehr darüber freuen, wenn mir jemand mal ein wenig helfen könnte.
Bitte aber nicht gleich den ganzen Code umwerfen. Ich weiß, es wird dutzende Möglichkeiten geben, das einfacher, schlanker und besser zu machen, aber ich wollte es einfach mit meinen momentanen Kenntnissen schaffen.


Danke schonmal! :)
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
//Prozentrechnung

#include
<stdio.h> //keine Ahnung, ob ich mehr brauche.

int main ()    //für diese Zeile zeigt er mir an:  fatal error: Internal error: 'Access violation' at 0x0040f0f7.
{
int auswahl (); //hier sollte die Auswahlfunktion starten, um zu bestimmen, was gerechnet werden soll.
{
Label1:;        //goto-Punkt, um das Programm erneut zu starten.
            //Gerade frag ich mich, ob ein erneutes deklarieren der Variablen bei jedem "neu berechnen" überhaupt gut ist.
            //soll ich Label1 besser ein bisschen weiter runter schieben, die Variabeln erstmal "leer" erzeugen
            //und nach Label1 auf 0 setzen?


    int ausw = 0;    //nötig für die auswahl
    int gw = 0;        //Grundwert-Variable
    int pw = 0;        //Prozentwert-Variable
    int ps = 0;        //Prozentsatz-Variable

    printf("Was soll berechnet werden?\n\n\n\n Prozentwert: 1\n Prozentsatz: 2\n Grundwert: 3\n");
        scanf("%d",&ausw);    //Warnung für diese Zeile: warning #2030: '=' used in a conditional expression.

    if (ausw = 1)   
    {
        printf("Berechnung des Prozentwertes.\n\n");
        printf("Bitte geben sie den Grundwert ein.\n\n");
            scanf("%d",&gw);
        printf("Bitte geben sie den Prozentsatz ein.\n\n");
            scanf("%d",&ps);
                    pw = ps * gw / 100;
        printf("Der Prozentwert beträgt: %d.\n\n",pw);
    Label2:;        //Wieder ein goto-Punkt. An diesem wird die Variable ausw auf 0 gesetzt und es kommt zu einer erneuten
                // Entscheidung mit Hilfe von ausw. Ist das überhaupt so korrekt oder soll ich ne zweite Variable für
                // diese Abfrage nehmen?

        ausw = 0;
        printf("Weiterrechnen oder beenden?\n\n\n");    //warning #2030: '=' used in a conditional expression.
        printf("Weiterrechnen: 1\n\n");
        printf("Beenden: 2\n\n");
            scanf("%d",&ausw);        //warning #2030: '=' used in a conditional expression.
                if (ausw = 1)
                    goto Label1;        //Wenn weitergerechnet werden soll, springt man zurück auf den Anfang
                                    // des Programms.


                else if (ausw = 2)        //Ansonsten springt man auf einen NOCH NICHT EINGERICHTETEN
                    goto Label3;        // goto-Punkt, der das Programm mit einer Verabschiedung beenden soll.

                else
                    printf("Bitte geben sie eine Zahl zwischen 1 und 2 ein.\n\n");    //Bei ner Fehlerhaften Eingabe    warning #2030: '=' used in a conditional expression.
                                                                                //geht es von Vorne los.

                    goto Label2;        //warning #2234: Argument 2 to 'scanf' does not match the format string; expected 'int *' but found 'int'.

    }    //warning #2234: Argument 2 to 'scanf' does not match the format string; expected 'int *' but found 'int'.

    else if (ausw = 2)                //hier das Gleiche für den Prozentsatz.        warning #2233: Insufficient number of arguments to 'printf' according to the format string.
        printf("Berechnung des Prozentsatzes.\n\n");
        printf("Bitte geben sie den Grundwert ein.\n\n");
            scanf("%d",gw);
        printf("Bitte geben sie den Prozentwert ein.\n\n");
            scanf("%d",pw);        //Fehlermeldung: error #2157: Unrecognized statement.        error #2001: Syntax error: expected ';' but found 'if'.
                    ps = pw * 100 / gw;        //warning #2030: '=' used in a conditional expression.
        printf("Der Prozensatz beträgt %d %.\n\n");
                //warning #2234: Argument 2 to 'scanf' does not match the format string; expected 'int *' but found 'int'.
        goto Label2;
            //warning #2234: Argument 2 to 'scanf' does not match the format string; expected 'int *' but found 'int'.

    else if (ausw = 3)            //und hier für den Grundwert.
        printf("Berechnung des Grundwertes.\n\n");    //warning #2233: Insufficient number of arguments to 'printf' according to the format string.
        printf("Bitte geben sie den Prozentwert ein.\n\n");
            scanf("%d",pw);
        printf("Bitte geben sie den Prozentsatz ein.\n\n");
            scanf("%d",ps);    //error #2157: Unrecognized statement.
                    gw = pw * 100 / ps;    //error #2001: Syntax error: expected ';' but found 'printf'.

        printf("Der Grundwert beträgt %d. \n\n");

        goto Label2;

    else        //und hier haben wir das letzte Stück der anfänglichen Abfrage.
            //sofern eine fehlerhafte Eingabe kommt, kommt man wieder an den Anfang zurück.

        printf("Bitte geben sie eine Zahl zwischen 1 und 3 ein.");
        goto Label1;

}
return 0;

}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
//Prozentrechnung

#include
<stdio.h> //keine Ahnung, ob ich mehr brauche.

int main () //für diese Zeile zeigt er mir an: fatal error: Internal error: 'Access violation' at 0x0040f0f7.
{
int auswahl (); //hier sollte die Auswahlfunktion starten, um zu bestimmen, was gerechnet werden soll.
{
Label1:; //goto-Punkt, um das Programm erneut zu starten.
//Gerade frag ich mich, ob ein erneutes deklarieren der Variablen bei jedem "neu berechnen" überhaupt gut ist.
//soll ich Label1 besser ein bisschen weiter runter schieben, die Variabeln erstmal "leer" erzeugen
//und nach Label1 auf 0 setzen?


int ausw = 0; //nötig für die auswahl
int gw = 0; //Grundwert-Variable
int pw = 0; //Prozentwert-Variable
int ps = 0; //Prozentsatz-Variable

printf("Was soll berechnet werden?\n\n\n\n Prozentwert: 1\n Prozentsatz: 2\n Grundwert: 3\n");
scanf("%d",&ausw); //Warnung für diese Zeile: warning #2030: '=' used in a conditional expression.

if (ausw = 1)
{
printf("Berechnung des Prozentwertes.\n\n");
printf("Bitte geben sie den Grundwert ein.\n\n");
scanf("%d",&gw);
printf("Bitte geben sie den Prozentsatz ein.\n\n");
scanf("%d",&ps);
pw = ps * gw / 100;
printf("Der Prozentwert beträgt: %d.\n\n",pw);
Label2:; //Wieder ein goto-Punkt. An diesem wird die Variable ausw auf 0 gesetzt und es kommt zu einer erneuten
// Entscheidung mit Hilfe von ausw. Ist das überhaupt so korrekt oder soll ich ne zweite Variable für
// diese Abfrage nehmen?

ausw = 0;
printf("Weiterrechnen oder beenden?\n\n\n"); //warning #2030: '=' used in a conditional expression.
printf("Weiterrechnen: 1\n\n");
printf("Beenden: 2\n\n");
scanf("%d",&ausw); //warning #2030: '=' used in a conditional expression.
if (ausw = 1)
goto Label1; //Wenn weitergerechnet werden soll, springt man zurück auf den Anfang
// des Programms.


else if (ausw = 2) //Ansonsten springt man auf einen NOCH NICHT EINGERICHTETEN
goto Label3; // goto-Punkt, der das Programm mit einer Verabschiedung beenden soll.

else
printf("Bitte geben sie eine Zahl zwischen 1 und 2 ein.\n\n"); //Bei ner Fehlerhaften Eingabe warning #2030: '=' used in a conditional expression.
//geht es von Vorne los.

goto Label2; //warning #2234: Argument 2 to 'scanf' does not match the format string; expected 'int *' but found 'int'.

} //warning #2234: Argument 2 to 'scanf' does not match the format string; expected 'int *' but found 'int'.

else if (ausw = 2) //hier das Gleiche für den Prozentsatz. warning #2233: Insufficient number of arguments to 'printf' according to the format string.
printf("Berechnung des Prozentsatzes.\n\n");
printf("Bitte geben sie den Grundwert ein.\n\n");
scanf("%d",gw);
printf("Bitte geben sie den Prozentwert ein.\n\n");
scanf("%d",pw); //Fehlermeldung: error #2157: Unrecognized statement. error #2001: Syntax error: expected ';' but found 'if'.
ps = pw * 100 / gw; //warning #2030: '=' used in a conditional expression.
printf("Der Prozensatz beträgt %d %.\n\n");
//warning #2234: Argument 2 to 'scanf' does not match the format string; expected 'int *' but found 'int'.
goto Label2;
//warning #2234: Argument 2 to 'scanf' does not match the format string; expected 'int *' but found 'int'.

else if (ausw = 3) //und hier für den Grundwert.
printf("Berechnung des Grundwertes.\n\n"); //warning #2233: Insufficient number of arguments to 'printf' according to the format string.
printf("Bitte geben sie den Prozentwert ein.\n\n");
scanf("%d",pw);
printf("Bitte geben sie den Prozentsatz ein.\n\n");
scanf("%d",ps); //error #2157: Unrecognized statement.
gw = pw * 100 / ps; //error #2001: Syntax error: expected ';' but found 'printf'.

printf("Der Grundwert beträgt %d. \n\n");

goto Label2;

else //und hier haben wir das letzte Stück der anfänglichen Abfrage.
//sofern eine fehlerhafte Eingabe kommt, kommt man wieder an den Anfang zurück.

printf("Bitte geben sie eine Zahl zwischen 1 und 3 ein.");
goto Label1;

}
return 0;

}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
//Prozentrechnung

#include
<stdio.h> //keine Ahnung, ob ich mehr brauche.

int main ()    //für diese Zeile zeigt er mir an:  fatal error: Internal error: 'Access violation' at 0x0040f0f7.
{
int auswahl (); //hier sollte die Auswahlfunktion starten, um zu bestimmen, was gerechnet werden soll.
{
Label1:;        //goto-Punkt, um das Programm erneut zu starten.
            //Gerade frag ich mich, ob ein erneutes deklarieren der Variablen bei jedem "neu berechnen" überhaupt gut ist.
            //soll ich Label1 besser ein bisschen weiter runter schieben, die Variabeln erstmal "leer" erzeugen
            //und nach Label1 auf 0 setzen?


    int ausw = 0;    //nötig für die auswahl
    int gw = 0;        //Grundwert-Variable
    int pw = 0;        //Prozentwert-Variable
    int ps = 0;        //Prozentsatz-Variable

    printf("Was soll berechnet werden?\n\n\n\n Prozentwert: 1\n Prozentsatz: 2\n Grundwert: 3\n");
        scanf("%d",&ausw);    //Warnung für diese Zeile: warning #2030: '=' used in a conditional expression.

    if (ausw = 1)   
    {
        printf("Berechnung des Prozentwertes.\n\n");
        printf("Bitte geben sie den Grundwert ein.\n\n");
            scanf("%d",&gw);
        printf("Bitte geben sie den Prozentsatz ein.\n\n");
            scanf("%d",&ps);
                    pw = ps * gw / 100;
        printf("Der Prozentwert beträgt: %d.\n\n",pw);
    Label2:;        //Wieder ein goto-Punkt. An diesem wird die Variable ausw auf 0 gesetzt und es kommt zu einer erneuten
                // Entscheidung mit Hilfe von ausw. Ist das überhaupt so korrekt oder soll ich ne zweite Variable für
                // diese Abfrage nehmen?

        ausw = 0;
        printf("Weiterrechnen oder beenden?\n\n\n");    //warning #2030: '=' used in a conditional expression.
        printf("Weiterrechnen: 1\n\n");
        printf("Beenden: 2\n\n");
            scanf("%d",&ausw);        //warning #2030: '=' used in a conditional expression.
                if (ausw = 1)
                    goto Label1;        //Wenn weitergerechnet werden soll, springt man zurück auf den Anfang
                                    // des Programms.


                else if (ausw = 2)        //Ansonsten springt man auf einen NOCH NICHT EINGERICHTETEN
                    goto Label3;        // goto-Punkt, der das Programm mit einer Verabschiedung beenden soll.

                else
                    printf("Bitte geben sie eine Zahl zwischen 1 und 2 ein.\n\n");    //Bei ner Fehlerhaften Eingabe    warning #2030: '=' used in a conditional expression.
                                                                                //geht es von Vorne los.

                    goto Label2;        //warning #2234: Argument 2 to 'scanf' does not match the format string; expected 'int *' but found 'int'.

    }    //warning #2234: Argument 2 to 'scanf' does not match the format string; expected 'int *' but found 'int'.

    else if (ausw = 2)                //hier das Gleiche für den Prozentsatz.        warning #2233: Insufficient number of arguments to 'printf' according to the format string.
        printf("Berechnung des Prozentsatzes.\n\n");
        printf("Bitte geben sie den Grundwert ein.\n\n");
            scanf("%d",gw);
        printf("Bitte geben sie den Prozentwert ein.\n\n");
            scanf("%d",pw);        //Fehlermeldung: error #2157: Unrecognized statement.        error #2001: Syntax error: expected ';' but found 'if'.
                    ps = pw * 100 / gw;        //warning #2030: '=' used in a conditional expression.
        printf("Der Prozensatz beträgt %d %.\n\n");
                //warning #2234: Argument 2 to 'scanf' does not match the format string; expected 'int *' but found 'int'.
        goto Label2;
            //warning #2234: Argument 2 to 'scanf' does not match the format string; expected 'int *' but found 'int'.

    else if (ausw = 3)            //und hier für den Grundwert.
        printf("Berechnung des Grundwertes.\n\n");    //warning #2233: Insufficient number of arguments to 'printf' according to the format string.
        printf("Bitte geben sie den Prozentwert ein.\n\n");
            scanf("%d",pw);
        printf("Bitte geben sie den Prozentsatz ein.\n\n");
            scanf("%d",ps);    //error #2157: Unrecognized statement.
                    gw = pw * 100 / ps;    //error #2001: Syntax error: expected ';' but found 'printf'.

        printf("Der Grundwert beträgt %d. \n\n");

        goto Label2;

    else        //und hier haben wir das letzte Stück der anfänglichen Abfrage.
            //sofern eine fehlerhafte Eingabe kommt, kommt man wieder an den Anfang zurück.

        printf("Bitte geben sie eine Zahl zwischen 1 und 3 ein.");
        goto Label1;

}
return 0;

}
SideWinder
Moderator

Benutzerprofil
Anmeldungsdatum: 19.10.2001
Beiträge: 18195
Beitrag SideWinder Moderator 13:25:15 29.08.2010   Titel:              Zitieren

Kopiere doch bitte die Warnungen und Fehlermeldungen ebenfalls hier her, hmm? :)

Edit: Spontan fällt mir auf, dass deine if/elseif/else nur durch Einrückungen getrennt sind, das funktioniert in C nicht. Du musst den ganzen Code mit { und } umklammern:
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if ( ... )
{
    statement1;
    statemten2;
   ...
}
else if ( ... )
{ <- wichtig
    ...
} <- wichtig
else if ( ... )
{
 ...
}
else
{
    ...
}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if ( ... )
{
statement1;
statemten2;
...
}
else if ( ... )
{ <- wichtig
...
} <- wichtig
else if ( ... )
{
...
}
else
{
...
}
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if ( ... )
{
    statement1;
    statemten2;
   ...
}
else if ( ... )
{ <- wichtig
    ...
} <- wichtig
else if ( ... )
{
 ...
}
else
{
    ...
}


MfG SideWinder

_________________
http://www.dilbert.com/2009-06-11/
http://www.dilbert.com/2009-06-14/


Zuletzt bearbeitet von SideWinder am 13:26:34 29.08.2010, insgesamt 1-mal bearbeitet
bierdosenhalter
Mitglied

Benutzerprofil
Anmeldungsdatum: 12.08.2010
Beiträge: 7
Beitrag bierdosenhalter Mitglied 13:46:10 29.08.2010   Titel:              Zitieren

Jo mach ich gleich. Aber erst werde ich deinen Rat beherzigen und den Code entsprechend abändern. Dann verschwindet eventuell eh einiges an Fehlern.

Zu deinem Rat an sich: Na Super! Da googlet man rum, liest Tipps und Anleitungen und dann findet man keine einzige verdammte Quelle, die korrekte Synthax angibt?
Das mit den geschweiften Klammern kam mir auch nur logisch vor, aber man ist ja Anfänger und macht nach, was man liest...*grummel*

Schonmal vielen Dank, ich werde das im Laufe des Tages entsprechend ändern! :) :live:
bierdosenhalter
Mitglied

Benutzerprofil
Anmeldungsdatum: 12.08.2010
Beiträge: 7
Beitrag bierdosenhalter Mitglied 17:31:08 29.08.2010   Titel:              Zitieren

Also euer Spamschutz ist ja mehr als merkwürdig. Ich kann Aufgaben lösen, wie ich will. Abschicken darf ich den Kram dann immer noch nicht.

Ok, dann halt eingeloggt.

Habe deinen Rat befolgt und so gut wie alle Fehler sind dadurch verschwunden.
Übrig blieben nur WARNUNGEN, ein völlig logischer Fehler (Label3 ist noch nirgendwo eingesetzt, das kommt noch) und der zu Anfang erwähnte Fehler in der 5. Zeile.


c(23): warning #2030: '=' used in a conditional expression.
c(40): warning #2030: '=' used in a conditional expression.
c(44): warning #2030: '=' used in a conditional expression.
c(54): warning #2030: '=' used in a conditional expression.
c(56): warning #2234: Argument 2 to 'scanf' does not match the format string; expected 'int *' but found 'int'.
c(58): warning #2234: Argument 2 to 'scanf' does not match the format string; expected 'int *' but found 'int'.
c(60): warning #2233: Insufficient number of arguments to 'printf' according to the format string.
c(66): warning #2030: '=' used in a conditional expression.
c(68): warning #2234: Argument 2 to 'scanf' does not match the format string; expected 'int *' but found 'int'.
c(70): warning #2234: Argument 2 to 'scanf' does not match the format string; expected 'int *' but found 'int'.
c(73): warning #2233: Insufficient number of arguments to 'printf' according to the format string.
c(44): error #2147: Undefined label 'Label3'.
c(5): fatal error: Internal error: 'Access violation' at 0x0040f0f7.
Chris_
Mitglied

Benutzerprofil
Anmeldungsdatum: 28.06.2009
Beiträge: 177
Beitrag Chris_ Mitglied 18:31:41 29.08.2010   Titel:              Zitieren

Auf den ersten Blick fällt mir folgendes auf:
C/C++ Code:
if (ausw = 1)
C/C++ Code:
if (ausw = 1)
C/C++ Code:
if (ausw = 1)

du meinst wohl eher
C/C++ Code:
if (ausw == 1)
C/C++ Code:
if (ausw == 1)
C/C++ Code:
if (ausw == 1)

da "=" eine Zuweisung und "==" ein Verglich ist
(Das erklärt schonmal die ersten 4 Warnungen)

MfG Chris_

Edit:
Mit scanf kenn ich mich nicht so aus, aber versuch mal
C/C++ Code:
scanf("%d",&gw);
C/C++ Code:
scanf("%d",&gw);
C/C++ Code:
scanf("%d",&gw);

statt
C/C++ Code:
scanf("%d",gw);
C/C++ Code:
scanf("%d",gw);
C/C++ Code:
scanf("%d",gw);

Edit No. 2:
Bei printf musst du als Parameter den einzusetzenden Wert übergeben.


Zuletzt bearbeitet von Chris_ am 18:43:47 29.08.2010, insgesamt 2-mal bearbeitet
bierdosenhalter
Mitglied

Benutzerprofil
Anmeldungsdatum: 12.08.2010
Beiträge: 7
Beitrag bierdosenhalter Mitglied 19:25:38 29.08.2010   Titel:              Zitieren

Chris_ schrieb:
Auf den ersten Blick fällt mir folgendes auf:
C/C++ Code:
if (ausw = 1)
C/C++ Code:
if (ausw = 1)
C/C++ Code:
if (ausw = 1)

du meinst wohl eher
C/C++ Code:
if (ausw == 1)
C/C++ Code:
if (ausw == 1)
C/C++ Code:
if (ausw == 1)

da "=" eine Zuweisung und "==" ein Verglich ist
(Das erklärt schonmal die ersten 4 Warnungen)

MfG Chris_

Edit:
Mit scanf kenn ich mich nicht so aus, aber versuch mal
C/C++ Code:
scanf("%d",&gw);
C/C++ Code:
scanf("%d",&gw);
C/C++ Code:
scanf("%d",&gw);

statt
C/C++ Code:
scanf("%d",gw);
C/C++ Code:
scanf("%d",gw);
C/C++ Code:
scanf("%d",gw);



Bis hierhin umgesetzt, danke!

Chris_ schrieb:
Edit No. 2:
Bei printf musst du als Parameter den einzusetzenden Wert übergeben.



Meinst du so?

C/C++ Code:
printf("Der Prozensatz beträgt %d,&ps %.\n\n");
C/C++ Code:
printf("Der Prozensatz beträgt %d,&ps %.\n\n");
C/C++ Code:
printf("Der Prozensatz beträgt %d,&ps %.\n\n");



statt

C/C++ Code:
printf("Der Prozensatz beträgt %d %.\n\n");
C/C++ Code:
printf("Der Prozensatz beträgt %d %.\n\n");
C/C++ Code:
printf("Der Prozensatz beträgt %d %.\n\n");
Chris_
Mitglied

Benutzerprofil
Anmeldungsdatum: 28.06.2009
Beiträge: 177
Beitrag Chris_ Mitglied 20:54:24 29.08.2010   Titel:              Zitieren

IMHO müsste es so aussehen:
C/C++ Code:
printf("Der Prozensatz beträgt %d\n\n",ps);
C/C++ Code:
printf("Der Prozensatz beträgt %d\n\n",ps);
C/C++ Code:
printf("Der Prozensatz beträgt %d\n\n",ps);

Es werden also die Platzhalter der Reihe nach durch die hinter dem String
angegebenen Werte ersetzt.
Aber bevor ich hier noch etwas falsches sage,
schau dir lieber diesen Link an:
http://www.cplusplus.com/reference/clibrary/cstdio/printf/
Weiter unten auf der Seite stehen auch Beispiele.

MfG Chris_
Sqwan
Mitglied

Benutzerprofil
Anmeldungsdatum: 08.01.2006
Beiträge: 965
Beitrag Sqwan Mitglied 16:20:40 31.08.2010   Titel:              Zitieren

C/C++ Code:
int main ()
{
    int auswahl ();
    {
        Label1:;
C/C++ Code:
int main ()
{
int auswahl ();
{
Label1:;
C/C++ Code:
int main ()
{
    int auswahl ();
    {
        Label1:;


Darf ich mal fragen was das werden soll? Und goto's ?

_________________
"Besser" impliziert "Anders" aber "Anders" impliziert noch lange nicht "Besser"
Die alte Kuh so schnell vergisst, dass sie selbst mal Kalb gewesen ist!
Chris_
Mitglied

Benutzerprofil
Anmeldungsdatum: 28.06.2009
Beiträge: 177
Beitrag Chris_ Mitglied 18:46:38 31.08.2010   Titel:              Zitieren

Das mit
C/C++ Code:
int auswahl ()
C/C++ Code:
int auswahl ()
C/C++ Code:
int auswahl ()
ist sicherlich nicht optimal, aber:
bierdosenhalter schrieb:
Leider sind meine C Kenntnisse wirklich sehr bescheiden, deshalb wird so einiges nicht optimal sein.

Und über diese goto's lässt sich ja streiten :D

MfG Chris_
bierdosenhalter
Mitglied

Benutzerprofil
Anmeldungsdatum: 12.08.2010
Beiträge: 7
Beitrag bierdosenhalter Mitglied 10:38:30 19.09.2010   Titel:              Zitieren

Da bin ich wieder!
Danke für die Hilfe bei Printf, hab jetzt wirklich nur noch den zu vernachlässigen Fehler mit Label3 und den Fatal Error.

c(5): fatal error: Internal error: 'Access violation' at 0x0040f0f7.

Ansonsten ist alles ok.


Zitat:

C/C++ Code:
int main ()
{
    int auswahl ();
    {
        Label1:;
C/C++ Code:
int main ()
{
int auswahl ();
{
Label1:;
C/C++ Code:
int main ()
{
    int auswahl ();
    {
        Label1:;



Darf ich mal fragen was das werden soll? Und goto's ?



Äh keine Ahnung was das werden soll. Muss das nicht so sein?
Ich dachte, ich brauch ne allgemeine Startfunktion und dann Unterfunktionen für jede weitere, beliebig oft wiederholbare Aktion des Programms. Dass hier alles in einen Topf geschmissen wurde und in die Funktion "Auswahl" jetzt auch alle Berechnungen reingeschmissen habe, ist vielleicht nicht optimal.
Allgemein macht mir die Strukturierung noch große Probleme. Könnte auch daran liegen, dass ich C noch nicht gut "spreche". Was die gotos angeht: Ich weiß, das kann ich durch Verschachtelungen lösen und gotos sind (aus welchem Grund auch immer, ich weiß es nicht) nicht gern gesehen.

Ich fand es für dieses Übungsprogramm recht praktisch, weil ich Punkte hatte, an denen ich immer wieder vorbeikam. Weiterrechnen? Gut! goto Label 1. Nein? Ok, Tschüss und nach Label 3. Label 2 hätte ich mir auch sparen können, indem ich nur bestimmte Eingaben zulassen würde, aber damit kenne ich mich noch nicht aus.
C/C++ Forum :: DOS und Win32-Konsole ::  Übungsprogramm macht Probleme  
Gehen Sie zu Seite 1, 2  Weiter
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.