Programm, das berechnet die Quadratwurzel einer Zahl.

Ich habe ein Programm entwickelt, das in einer Zahl und gibt die Quadratwurzel aus. Ex - 45 --> 3√5. Ich machte ein Programm, aber es gibt die gleiche Anzahl, die ich in. Hilfe würde sehr geschätzt werden.
Hier ist mein code -->

#include<iostream>
using namespace std;


int squarerootfinder(int number, int divisor){
     if(divisor == 1){

            return 1;
     }
     else{

            if((number / (divisor * divisor))% 1 != 0){

                    divisor = squarerootfinder(number, divisor - 1);

            }
            if((number/ (divisor * divisor)) % 1 == 0 ){
            return divisor;

            }

      }

}
int main(){
     int number;
     cout << "Enter a number to find the square root of it \n";
     cin >> number;
     int divisor = number;
     int squareroot;
     squareroot = squarerootfinder(number, divisor);
     cout << squareroot << endl;
     return 0;
}
  • Welche versuche haben Sie gemacht, um die debug-problem?
  • Gut, die ich gelesen habe über ihn für die Letzte halbe Stunde, aber ich kann nicht finden, wo der Fehler ist. Ich nehme an, es ist etwas falsch mit der Funktion Rekursion. Aber ich bin mir nicht sicher, was ich tun soll.
  • Wenn Sie Zugriff auf einen debugger, die Sie wollen zu Fuß durch die Ausführung des Programms an, das beobachten der Ausführung Volumenstrom und der Status von Variablen auf wichtige Punkte in diesem Ablauf. Ansonsten, print auf die Konsole oder in eine Logdatei, um das gleiche erreichen.
  • Hinweis: % 1 ist nicht das tun, was Sie denken, es tut. Auch, wenn es die Hausaufgaben, bitte markieren Sie Sie als solche.
  • vielen Dank für die Hilfe! Und ja, das ist Hausaufgaben, tut mir Leid dies ist tatsächlich mein erstes mal Buchung für C++ - Hilfe.
  • Ich habe in der % 1, um zu sehen, wenn es geteilt, um die form einer ganzen Zahl. Wenn es das nicht ist, dann würde es subtrahieren den divisor und so weiter. Ich verstehe nicht, warum es nicht funktioniert.
  • Ich sehe, dass das problem bei der if((Zahl / (Teiler * Teiler))% 1 != 0) Teil, weil das nicht funktioniert. Weiß jemand, warum?
  • Ich habe gerade festgestellt, was für ein idiot ich bin
  • lol... Gut auf Sie. Das Auffinden eines Fehlers selbst ist viel befriedigender, als wenn es dir gegeben.

InformationsquelleAutor jack klompus | 2012-04-14
Schreibe einen Kommentar