Querprodukt 42 programmieren c falsches Ergebnis?
Eine Klausurteilaufgabe war es ein Querprodukt von einer nichtnegativen Ganzzahl zu programmieren von der Zahl 42.
Ich erhalte immer Als Ausgabe die 2. Warum? Ich finde leider mein Fehler nicht bei dem Querprodukt. Oder habe ich hier komplett falsch gerechnet.
Wenn ja bitte ich um eine gute erklärung :D
Ich poste mal nur die Funktion rein
5 Antworten
das querprodukt ist doch bei
42 = 4+2 = 6 ?
dann fehlt da schonmal die summen addition .
und while a>0 klingt auch merkwürdig wenn du doch gucken willst ob x nicht kleiner 0 geworden ist (also kleiner als der 1er .)
und das return kommt ans ende und dann wohl die summe ausgeben und nicht x .
gut das du das sagst , mir kam es schon etwas merkwürdig vor :)
also nicht summen bilden.
ich lass es mal so stehen , kann ja ein anderer vielleicht bei gleicher falscher logik was mit anfangen hihi .
- Das return gehört ausserhalb der Schleife
- Die while-Schleife muss laufen solange x>0. Denn bei a>0 macht sie noch einen zusätzlichen Durchgang in dem a dann 0 ist, weshalb du als Produkt 0 bekommst.
Ich habe es mal schnell in C++ geschrieben und es kommt von 42 auch 8 heraus:
Du kannst es mal nachprüfen.
#include <iostream>
#include <string>
using namespace std;
#include <iostream>
#include <string>
using namespace std;
int main(int argc, char* argv[])
{
int myZahl=42;
int nebenprodukt;
int rechner;
rechner=1;
while (myZahl != 0)
{
nebenprodukt= myZahl%10;
rechner=nebenprodukt * rechner;
nebenprodukt = 0;
myZahl= myZahl / 10;
}
cout <<" Querprodukt: " << rechner << endl;
return 0;
}
return steht in der While Schleife. Das ist nicht schön.
return sollte bei eine Funktion immer ganz zum Schluss stehen.
Das return darf nicht in die Schleife. Du springst beim ersten Mal schon raus.
Hatte vorher das Return ausserhalb gehabt hab 0 als Ausgabe bekommen
Habs gelöst :d da durfte nicht a > 0 stehen, sondern x>0.... Aber wieso muss ich in der Rechnung der Restbildung am ende *a noch hinschreiben? Ist a nicht = 1
Weil du das Produkt aller Reste bilden sollst.
Die werden in a "gesammelt". Sonst wäre immer nur der
letzte Rest in a.
Das ist die Quersumme. Ein Produkt ist immer das Ergebnis einer Multiplikation.