私のC++プログラムはコードブロックで正しい結果を返しますが、Visual Basic 2005 Express Editionでは、誰でも私が間違っていることについて教えてください:)ありがとうございます:) ここで関数を使用して階乗を見つけるための私のプログラムです。私のC++プログラムはコードブロックで正しい結果を返しますが、Visual Basic 2005 Expressエディションでは間違った結果を返します
#include <iostream>
using namespace std;
int fact(int a)
{
if (a>1)
return a*fact(a-1);
}
int main()
{
cout<<"Enter a number to find its factorial : ";
int a;
cin>>a;
cout<<"Factorial of "<<a<<" is "<<fact(a)<<endl<<endl;
}
結果コードブロックで
Enter a number to find its factorial : 5
Factorial of 5 is 120
結果のVisual Basic 2005 Expressエディション
Enter a number to find its factorial : 5
Factorial of 5 is -96
あなたは何を返すのですか?おっとっと。 – PaulMcKenzie
をcodeblocksに入れて、<= 1とすると、階乗を求めるために入力した数字が返され、vb 2005では予期しない結果が出ます:) – Romeo
私の答えをお読みください。問題は、値を返す関数から値を返すことに失敗していることです。関数が何をしているかにかかわらず、それは未定義の振る舞いです。 – PaulMcKenzie