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

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

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.

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;

}

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.

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'

Hey super!!!

Tausend dank!

Klappt alles!

DANKE!

ich benutze den C++ Borland 5,0.

bei mir klappt alles soweit....

seltsam...

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 ;)

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.

da er aber vom borland c++ builder 5.0 spricht hab ich mir mal erspart den ganzen namen hinzuschreiben, hätte man sich ja auch denken können

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

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.