Querprodukt 42 programmieren c falsches Ergebnis?

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 .


LeBonyt  01.12.2021, 14:55

Das ist die Quersumme. Ein Produkt ist immer das Ergebnis einer Multiplikation.

1
TechPech1984  01.12.2021, 14:59
@LeBonyt

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 .

0
  1. Das return gehört ausserhalb der Schleife
  2. 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.
Woher ich das weiß:Studium / Ausbildung – Bachelor in Informatik 👨🏻‍🎓

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;

}   

Woher ich das weiß:Berufserfahrung

return steht in der While Schleife. Das ist nicht schön.

return sollte bei eine Funktion immer ganz zum Schluss stehen.

Woher ich das weiß:Berufserfahrung – Web Developer bei einem mittelständischen Portalbetreiber

ichthomas111 
Beitragsersteller
 01.12.2021, 14:50

Ausserhalb erhalte ich = 0

0

Das return darf nicht in die Schleife. Du springst beim ersten Mal schon raus.


MrAmazing2  01.12.2021, 14:48

Und in die Abbruchbedingung muss x und nicht a

0
ichthomas111 
Beitragsersteller
 01.12.2021, 14:48

Hatte vorher das Return ausserhalb gehabt hab 0 als Ausgabe bekommen

0
ichthomas111 
Beitragsersteller
 01.12.2021, 14:57
@LeBonyt

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

1
Tannibi  01.12.2021, 15:04
@ichthomas111

Weil du das Produkt aller Reste bilden sollst.
Die werden in a "gesammelt". Sonst wäre immer nur der
letzte Rest in a.

1