c++ de manière Récursive multiplier 2 nombres entiers à l'aide de plus

Je suis en train d'écrire du code pour les devoirs qui utilise la récursivité et de plus pour multiplier deux entiers ensemble. Mais, je suis actuellement en train de recevoir beaucoup de messages d'erreur, et je ne suis même pas sûr si je suis sur la bonne voie. Et, juste pour vérifier, c'est récursive, droit? J'ai écrit un autre programme pour ce problème qui fonctionnait très bien jusqu'à ce que j'ai réalisé qu'il n'était pas réellement récursive. Voici le code complet:

#include <iostream>
#include <iomanip>
using namespace std;
int result;
int m;
int n;

int rmultiply(int m, int n)
{
    if(n > 1)
        return(m + (rmultiply(n - 1)));

    else if ((m == 0) || (n == 0))
        return 0;
    else if (n == 1)
        return m;
}

int main(m, n)
    {
    cout << "Enter two integers to multiply" << endl; //prompt user to input 2 integers
    cin >> m >> n; //store them in variable m and n

    result = rmultiply(m,n);
    cout << result;
    }

Erreur 1: Trop peu d'arguments à la fonction " int rmultiply(int, int)'

return(m + (rmultiply(n - 1)));

Avertissement: le contrôle a atteint sa fin de non-void function

D'erreur 2(pour les lignes de code ci-dessous): Expression de la liste des traités en tant que composé d'expression dans l'initialiseur

Erreur 3::', ' or ';' before'{' token

Avertissement: l'opérande gauche de l'opérateur virgule n'a pas d'effet

int main(m, n)
{

Toute aide serait appréciée!

  • C'est tout simplement stupide. Personne ne devrait jamais définir la multiplication de cette façon, même pas comme un exercice.
  • Le prof veut nous apprendre à utiliser la récursivité correctement. Sa décision de devoirs, pas le mien!
InformationsquelleAutor Neko | 2013-11-11