#include <iostream> #include <ctime> using namespace std; void randNum() { int num1 = (rand() % 12) + 1; int num2 = (rand() % 12) + 1; int answer; answer = num1 * num2; return answer, num1, num2; } int main() { srand(time(NULL)); } I get the error return value type does not match the function type. Answer is an integer but it won't return regardless.
3 Réponses :
Vous ne pouvez pas retourner 3 choses. Vous pouvez l'envelopper dans une structure si vous le souhaitez. Et rendre votre fonction renvoie la structure au lieu de vide. Dans Main, appelez votre fonction sortie possible: p>
Vous mélangez C et C ++ ici. Après avoir défini le type code> type code> trois_values code>, le mot clé struct code> n'est pas nécessaire pour l'utiliser. Et, de la sorte, de cela est considéré comme une pratique assez médiocre en C ++, même s'il est techniquement autorisé en raison de la compatibilité rédaction avec C.
Au risque de semblant complètement immodéré, je sais.
Eh bien, vous n'avez pas vraiment besoin de définir une structure dans ce cas. Peut très bien utiliser C ++ 11's's std :: tuple code> < / a>, comme c'est ce que c'est là pour.
Votre fonction est déclarée pour renvoyer le vide, en C ++, cela signifie que cela ne renvoie rien. Vous devez d'abord modifier le type de retour de signature de fonction au type que vous avez prévu de revenir (par exemple. int). P>
En outre, comme écrit déjà - en C ++, vous ne pouvez pas retourner plusieurs variables comme vous faites à Python. Vous pouvez transmettre des valeurs de retour via des références ou des pointeurs dans le paramètre de la fonction ou via un retour d'une structure contenant toutes ces valeurs. P>
Regardez votre code! Vous essayez de retourner une valeur d'une fonction forte> Void forte> et de retourner plusieurs valeurs. C'est totalement faux. Plutôt void randnum () fort>
Vous devez utiliser int randnum () strong> em>. Et renvoyer uniquement la réponse. Ceci est CODE CODE >> P> #include <iostream>
#include <ctime>
using namespace std;
int randNum()
{
int num1 = (rand() % 12) + 1;
int num2 = (rand() % 12) + 1;
int answer;
answer = num1 * num2;
return answer;
}
int main()
{
srand(time(NULL));
}
Regardez le type de retour de votre fonction (
void code>). Est-ce que cela correspond à ce que vous retournez? En outre, ce n'est pas la manière dont vous retournez plusieurs valeurs d'une fonction C. Vous devez soit transmettre les valeurs comme des arguments d'entrée d'entrée / sortie par adresse ou renvoyer une structure définie pour contenir les valeurs en question. Ce code ne fait ni.
Réponse de retour, num1, num2; code> est finalement
retour num2; code> qui est très probable pas i> ce que vous vouliez.
Connexes: Stackoverflow.com/a/321080/509868
En raison du nombre de questions comme celle-ci, je considère que je considère qu'il doit exister un
une émission-programmation-la-programmation-réutilisation CODE> SOIN SO avec une description "La question a été posée en raison d'une hypothèse non cochée et incorrecte Cette syntaxe du langage de programmation X fonctionnera exactement de la même manière dans un langage de programmation complètement différent Y. " - Dans ce cas, le X est Python et Y est C ++.