Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

ich will eine Fläche berechnen und hab hier folgenden Code:

//---------------------------------------------------------------------------

#include <stdio.h>

#include <conio.h>

//---------------------------------------------------------------------------

float laenge = 0, breite = 0, flaeche = 0;

float main()

{

printf("Programm zur Berechnung einer Flaeche\n");

printf("-------------------------------------\n \n");

breite = printf("Bitte geben sie die gewuenschte Breite ein:");

breite = scanf("%f",&breite);

laenge = printf("Bitte geben sie nun auch die gewuenschte Laenge ein:");

laenge = scanf("%f",&laenge);

printf("laenge*breite");

getch();

return 0;

}

was habe ich da falsch gemacht?

Was kann ich verändern das es funktioniert?

Vielen Dank

Geschrieben

omg.

zunächst einmal muss main int zurückgeben.

breite = printf("Bitte geben sie die gewuenschte Breite ein:");

hier speicherst du ein int in einer float variable.

außerdem wird die in der nächsten zeile überschrieben.

also mach nur

printf("Bitte geben sie die gewuenschte Breite ein:");

selbiges bei laenge.

printf("laenge*breite");

"laenge*breite" ist ein string, du willst aber das ergebnis einer multiplikation (float). deshalb:

printf("%f", laenge*breite);

mfg.

Geschrieben

hey vielen dank!

jetzt hab ich nur das problem das er mir bei

printf("%f", laenge*breite);

immer den wert 1 zurück gibt.

was hab ich da falsch gemacht?

float laenge = 0, breite = 0, flaeche = 0;

float main(int [])

{

printf("Programm zur Berechnung einer Flaeche\n");

printf("-------------------------------------\n \n");

printf("Bitte geben sie die gewuenschte Breite ein:");

breite = scanf("%f",&breite);

printf("Bitte geben sie nun auch die gewuenschte Laenge ein:");

laenge = scanf("%f",&laenge);

printf ("%f",laenge*breite);

getch();

return 0;

}

Geschrieben

oh, sorry, das laenge bzw. breite vor scanf gehört natürlich auch weg. ;)

scanf schreibt den eingegebenen wert natürlich an die adresse der variablen und gibt dann 1 zurück, deshalb hast du immer 1*1 genommen.

mit cin >> laenge wäre das nicht passiert :bimei

"main muss int zurückgeben" hast du wohl falsch verstanden:

float main(int [])

der rückgabetyp ist float, du hast jetzt so ne art int array in der parameterliste hinzugefügt. eigentlich sollte dein compiler nen fehler auswerfen, also imho kann das nicht als richtig erachtet werden.

naja, es sollte auf jeden fall so aussehen:

int main()

so, dann schaut das ganze schonmal sehr gut aus.

eine anmerkung hätte ich aber noch, du deklarierst neben laenge und breite auch die variable flaeche, verwendest sie aber nirgends, kannst du also ggf. rausschmeißen.

Geschrieben

hab jetzt grad nochmal bisschen rumgespielt, sag' mal, welchen compiler verwendest du eigentlich?

wenn ich deinen code kompillieren will, mit dem float vor main werde ich schon gewarnt (mingw):

test.cpp

test.cpp:7: error: `main' must return `int'

test.cpp:7: error: return type for `main' changed to `int'

Geschrieben

ja jetzt klappts sicherlich, aber uns kannste nicht weis machen das, mit dem ersten code den du gepostet hast dein borland nicht gemeckert hat :P ich hab auch den borland und der schreit bei jedem kleinen sche** schon aua ;)

Geschrieben
ich hab auch den borland und der schreit bei jedem kleinen sche** schon aua ;)
Es gibt nicht "den" Borland. Viele ältere Compiler, gerade solche, die älter als der C++-Standard selbst sind, schlucken so einiges klaglos, was neuere Versionen desselben Herstellers nicht mehr durchgehen lassen.

Der Rückgabetyp von main ist da nur ein Beispiel.

Geschrieben

mal mein senf dazugibt

man kann auch einstellen welche warnungen ausgegeben werden sollen bzw ob warnungen überhaupt angezeigt werden sollen.

und bei float --> int , dürfte nur dieWarnung kommen das möglicherweise der wert abgeschnitten wird.

jma

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...