Wieso funktioniert das nicht???
-
Hallo,
ich bin noch recht neu und mache gerade eine Ausbildung zum Wirtschaftsassistent. Meine SE Lehrerin hat uns schon ein Programm gegeben doch wenn ich das jetzt mit Dev-C++ 4.9.9.2 compilieren will sagt er immer das es falsch ist. Hier mal das Programm!!!#include <stdio.h>
void main (void)
{
int x,y,z;
printf ("Geben Sie den 1.Wert ein:");
scanf ("%i",&x);
printf ("Geben Sie den 2.Wert ein:");
scanf ("%i",&y);
if (x>y) z=x-y; else z=y-x;
printf ("Die Differenz ist &i",z);
}er streicht mir immer { das an! Was kann ich machen???
MfG
Sascha0810
-
Hab da noch ein Problem hab ich grad als Sascha0810 angemeldet doch ich bekomme keine Mail! Wahrscheinlich liegts an der Sperre. Kann mich mal bitte ein Admin freischalten???
Danke
-
1. Deine Version gehört ins C Forum
2. so geht's in C++:#include <iostream> using namespace std; int main (int argc, char **argv) { //Wann lernt Ihr's endlich, main gibt int zurück! int x,y,z; cout<<"Geben Sie den 1.Wert ein:"<<'\n'; cin >> x; cout<<"Geben Sie den 2.Wert ein:"<<'\n'; cin >> y; if (x>y) z=x-y; else z=y-x; cout<<"Die Differenz ist: "<< z <<'\n'; return EXIT_SUCCESS; }
-
Sascha0810 schrieb:
Hallo,
ich bin noch recht neu und mache gerade eine Ausbildung zum Wirtschaftsassistent. Meine SE Lehrerin hat uns schon ein Programm gegeben doch wenn ich das jetzt mit Dev-C++ 4.9.9.2 compilieren will sagt er immer das es falsch ist. Hier mal das Programm!!!#include <stdio.h>
void main (void)
{
int x,y,z;
printf ("Geben Sie den 1.Wert ein:");
scanf ("%i",&x);
printf ("Geben Sie den 2.Wert ein:");
scanf ("%i",&y);
if (x>y) z=x-y; else z=y-x;
printf ("Die Differenz ist &i",z);
}er streicht mir immer { das an! Was kann ich machen???
Hmm
- im C forum C fragen stellen
- int main ?
3)printf("%i",var); statt printf("&i",var);
4)if(bedingung)ausdruck;else ausdruck nicht in eine zeile schreiben .
mehr fällt mir so grad nicht ein
-
Also das einzige was der mir sagt, ist das der Rückgabewert von der Funktion nicht int ist. Nach Standard muss es int main(void) oder int main(int, char**) heißen.
Es compiliert jedoch und lässt sich ausführen.
Ach ja, was meldet der Compiler denn bei die für einen Fehler.
-
Ja ok jetzt hab ich das eingegeben und es funktioniert auch allerdings wenn ich die beiden werte eingegeben habe geht das Prog sofort wieder weg und ich kann die Differenz nicht lesen. Aber wieso sagt meine Lehrerin das das C++ ist???
-
if (x>y) z=x-y; else z=y-x;würde ich bin so kurzen ausdrücken durch
z=(x>y)?x-y:y-x;Ist aber nur eine Frage de Geschmacks
-
// edit hier stand unsinn
konsolen faq zum (nicht)schliessen von konsolen faq
C++ wäre es wenn du
<cstdio> und
int main()
nimmst.
Dann wäre aber immernoch zu bemängeln dass du keine streams benutzt
-
Ich nochmal! schrieb:
Ja ok jetzt hab ich das eingegeben und es funktioniert auch allerdings wenn ich die beiden werte eingegeben habe geht das Prog sofort wieder weg und ich kann die Differenz nicht lesen. Aber wieso sagt meine Lehrerin das das C++ ist???
Weil sie es nach einem 3-Wochen Ferienschnellkurs wahrscheinlich selbst nicht
besser weiss.
-
Ich nochmal! schrieb:
... allerdings wenn ich die beiden werte eingegeben habe geht das Prog sofort wieder weg und ich kann die Differenz nicht lesen.
Mit
system("PAUSE");wartet die Konsole (Windows) auf einen Zeichendruck, bevor sie verschwindet. Einfach am Ende einfügen. (Und den Header stdlib.h ebenfalls includieren
-
nope, wenn dann cstdlib. Und wer sagt überhaupt, dass differenzen immer positiv sind?
@Sascha0810: ich würde mich woanders ausbilden lassen...
-
ness schrieb:
nope, wenn dann cstdlib.
Den ersten Code den er gepostet hat, ist definitiv C, und deshalb stdlib.h - Aber bei C++ fehlt dann auch noch std::
-
gurru schrieb:
ness schrieb:
nope, wenn dann cstdlib.
Den ersten Code den er gepostet hat, ist definitiv C, und deshalb stdlib.h - Aber bei C++ fehlt dann auch noch std::
punkt für dich
-
z=(x>y)?x-y:y-x;
warum bringt ihr den noch lernenden solch ein zeug bei...
es lässt sich nicht nur schlechter lesen, sondern zudem noch schwieriger debuggen.... in diesem falle immer schön die {} schreiben.... hat meiner meinung nach nichts mehr mit geschmack zu tun...
-
pinorrix schrieb:
z=(x>y)?x-y:y-x;
warum bringt ihr den noch lernenden solch ein zeug bei...
es lässt sich nicht nur schlechter lesen, sondern zudem noch schwieriger debuggen.... in diesem falle immer schön die {} schreiben.... hat meiner meinung nach nichts mehr mit geschmack zu tun...Doch hat es. Was du dadurch , dass du sagst, du könntest es nicht lesen, eigentlich zeigst.
Ich denke zwar das meine Zeile nicht unlesbarer ist als eine erste, des weitern finde ich die Lösung im o.g. C++ Code am geeignetsten.
{} find ich unsinnig und unübersichtlich wenn es sich um einzeile Audrücke handelt.
-
wenn man deine schreibweise gewohnt ist, kann man es lesen - kein problem, da gebe ich dir recht. nur zeigt meine persönliche erfahrung, dass sich der aufwand die {} zu benutzen immer rentiert - egal in welchem projekt... ich wollte nicht die immer wieder geführten diskussionen entfachen, sondern nur darauf hinweisen, dass man den anfängern nicht gleich solche brocken an den kopf schmeissen sollte. ich denke, die haben als erstes ganz andere sorgen....
-
wer es leserlich haben will, schreibt
z=abs(x-y);und nicht diesen verzweigungsmist (ob nun mit if oder ?: ), der völlig irrelevant für das problem ist.
-
Wieso könnt ihr keine Leerzeichen benutzen?
Ein z = abs( x - y ); oder z = ( x > y ) ? x - y : y - x; ist doch viel einfacher zu lesen.
-
camper schrieb:
wer es leserlich haben will, schreibt
z=abs(x-y);und nicht diesen verzweigungsmist (ob nun mit if oder ?: ), der völlig irrelevant für das problem ist.
Schon, aber der Op hat nicht gerade den Eindruck gemacht er wäre sicher im Umgang mit C++, da stellt sich die Frage ob er die Standardbibliothek kennt...