Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Moin,

ihr werdet es vermutlich als einfach sehen, aber ich habe eine kleine Frage zu diesem C Programm:


#include <stdio.h>


void main(void)

{

int a,b;

a=4;

b=5;


printf ("a=%i, b=%i\n", a,;


--a;

++b;

printf ("a=%i, b=%i\n", a,;

printf ("a=%i, b=%i\n", ++a);

printf ("a=%i, b=%i\n", a-- +b,;


getchar ();

}

[/code]

Wenn ich diese Eingabe Compiliert habe und das Programm dann starte, bekomme ich folgende Ausgabe:

a=4, b=5

a=3, b=6

a=4, b=6

a=10, b=6

Die ersten drei Zeilen der Ausgabe kann ich nachvollziehen. Nur bei der letzten komme ich etwas ins stolpern. Kann mir jemand erklären wie der wert 10 bei a zustande kommt?

Oder besser wie wird mit a-- gerechnet? Ich habe gelernt das dann a-1 gerechnet wird genauso wie --a gleich a-1 ist.

Wenn ich es so rechne komme ich dann aber nur auf neun statt zehn? :(

Es Grüsst,

Cr@sh [der sich so langsam mit C Programmierung anfreundet]

printf ("a=%i, b=%i\n", ++a);

Die Ausgabe von b ist eigentlich nicht definiert, weil der Parameter fehlt... welchen Compiler benutzt Du, daß da 6 ausgegeben wird?

printf ("a=%i, b=%i\n", a-- +b,B);

Der Parameter a wird erst der Funktion übergeben, bevor er runtergezählt wird. Und da es vorher 4 war, wird 4+6=10 ausgegeben und nach der Ausgabe ist a=3.

Bei --a wird a auf jeden Fall vor dem Aufruf der Funktion a runtergezählt und dann erst als Parameter weitergegeben und das Ergebnis ist 9.

Original geschrieben von Crush

Die Ausgabe von b ist eigentlich nicht definiert, weil der Parameter fehlt... welchen Compiler benutzt Du, daß da 6 ausgegeben wird?

Hi Crush,

Ich benutze den Bloodshed Dev-C++.

Noch eine kleine Zwischenfrage:

Wofür steht die Anweisung "case" ?

Original geschrieben von FinalFantasy

Wo steht da was von Case??

Dort nirgens, - ich wollte es wissen, da ich ein Programm habe, wo es vorkommt.

Und wollte deswegen keinen Extra Thread aufmachen.

Deswegen habe ich gesagt Zwischenfrage. ;)

Das Programm sieht so aus:

#include <stdio.h>


void main(void)

{

char wahl;


printf ("Weiter ('J'/'N')");


fflush (stdin);

scanf ("%c",&wahl);

fflush (stdin);


switch (wahl)

{

case 'J'

case 'j'

printf ("Weiter!\n"); break

case 'N'

case 'n'

printf ("Ende!\n"); break

default;

printf ("Nur 'J' oder 'N' erlaubte Eingabe!\n");

}

getchar ();

}

Jetzt sagt mir mein Compiler, das Ein Fehler enthalten ist.

parse error before 'case'

:confused:

Original geschrieben von FinalFantasy

nach dem case 'X': fehlt jedes mal der Doppelpunkt, das würde ich sagen ist der Fehler.

Anscheinend nicht.

Jetzt sieht der Abschnitt so aus:

{

case 'J':

case 'j':

printf ("Weiter!\n"); break

[COLOR=red]case 'N':[/COLOR]

case 'n':

printf ("Ende!\n"); break

default;

printf ("Nur 'J' oder 'N' erlaubte Eingabe!\n");

}

In der rot markierten Zeile soll der Fehler sein. Kann das eventuell am Compiler liegen?

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.