C++ Problem/Frage [gelöst]

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
t4pion
Beiträge: 46
Registriert: 04.05.2005 19:54:42
Kontaktdaten:

C++ Problem/Frage [gelöst]

Beitrag von t4pion » 06.09.2005 12:30:26

hi hab gerade angefangen c++ anzuschauen.
nur da ich leider nicht so bewandert in c++ bin, häng ich schon am anfang fest.

also hab mir mal das tut angeschaut
http://www.highscore.de/cpp/einfuehrung/

da steht unter 3.11Aufgabe, das was ich probiert habe ,

Code: Alles auswählen

#include <iostream>

int main ()
{	
	int a, b, c, d, e;
	std::cout << "zahl 1" << std::endl; 
	std::cin >> a;
	std::cout << "zahl 2" << std::endl;
	std::cin >> b;
	std::cout << "zahl 3" << std::endl;
	std::cin >> c;
	d = 10;
	
	e = ((a+d)*b)/c;
	std::cout << "Ergebnis:  "<< d << std::endl;
}
prob: irgendwie kommt als ergebnis immer 10 raus
wenn ich die variable d entferne und

Code: Alles auswählen

e = ((a+10)*b)/c;
schreib, dann funktionierts.

meine fragen: -wie kann ich die 10 richtig als eine variable ersetzten?
-die aufgabe kann man anscheinend auch mit arrays und char lösen aber wie?

danke für antwort
...t4pion
Zuletzt geändert von t4pion am 06.09.2005 13:08:01, insgesamt 1-mal geändert.
Debian Sid; 2.6.12 kernel; Athlon 2500+; nvidia geforce 4 ti 4200

Benutzeravatar
BeS
Moderator
Beiträge: 3236
Registriert: 17.04.2002 18:30:21
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Stuttgart
Kontaktdaten:

Re: C++ Problem/Frage

Beitrag von BeS » 06.09.2005 12:37:31

Hallo,

in deiner letzten Zeile steht:

std::cout << "Ergebnis: "<< d << std::endl;

du gibst also immer d aus, was natürlich 10 ist, was du aber wahrscheinlich haben willst ist der Wert von e.
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support

Ich spreche von Freier Software!

Benutzeravatar
godsmacker
Beiträge: 902
Registriert: 16.03.2003 21:50:26
Lizenz eigener Beiträge: Artistic Lizenz
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von godsmacker » 06.09.2005 12:55:32

(Selbsterklärende Variablennamen)++;

Benutzeravatar
Pischti
Beiträge: 417
Registriert: 20.02.2002 12:54:18
Wohnort: dresden

Beitrag von Pischti » 06.09.2005 12:57:19

noch was: e ist bei dir ein integer (ganzzahl)
dein ergebnis soll aber doch bestimmt ne gleitkommazahl werden, zumindest in den meisten fällen, da du eine teilung vornimmst ...
gruss pischti
debian stable

Benutzeravatar
BeS
Moderator
Beiträge: 3236
Registriert: 17.04.2002 18:30:21
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von BeS » 06.09.2005 13:01:13

Pischti hat geschrieben:noch was: e ist bei dir ein integer (ganzzahl)
dein ergebnis soll aber doch bestimmt ne gleitkommazahl werden, zumindest in den meisten fällen, da du eine teilung vornimmst ...
da er eh int/int rechnet wird er unabhängig vom Typ von e ein ganzzahliges Ergebnis bekommen.
Deine Unterstützung für Freie Software kostet dich nur wenige Minuten: www.fsfe.org/support

Ich spreche von Freier Software!

Benutzeravatar
Pischti
Beiträge: 417
Registriert: 20.02.2002 12:54:18
Wohnort: dresden

Beitrag von Pischti » 06.09.2005 13:05:40

@BeS
so ein schlaumeier aber auch
aber recht hat er ...
also: eine variable dann noch (variablen a-d) zum double/float oder ein typecast auf ein zwischenergebnis ....
gruss pischti
debian stable

Benutzeravatar
t4pion
Beiträge: 46
Registriert: 04.05.2005 19:54:42
Kontaktdaten:

Beitrag von t4pion » 06.09.2005 13:07:27

danke für die schnellen antworten
auf den leichtsinns fehler wär glaub nie gekommen :lol:

big thx
Debian Sid; 2.6.12 kernel; Athlon 2500+; nvidia geforce 4 ti 4200

Antworten