• 締切済み

C++の関数で

Visual C++で6の4乗を求めるプログラムを作ろうとしたのですがうまくいきません。どこが間違っているか教えていただけないでしょうか? #include "stdafx.h" int get; bekijyo(int,int); void main(void) { int number1,number2; int kekka; number1=6; number2=4; kekka=get; bekijyo(number1,number2); printf("%dの%dは%dです。); } int getbekijo(int x,int y) { int z; if(y==1) return(x); z=x; getbekijyo(x,y-1); return(z); }

みんなの回答

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.4

>一応上のように直してみたのですが そりゃ動かないだろうね だって、「どこが間違っているか教え」た だけだから。 なぜそれが間違っているのか、を知るには文法 っていう回答だったわけ。 え?なんで修正したソースを書いてくれないのかって? それは答えを丸写しするだけになって、禁止されているからできない。 回答者は手助けしかできない。宿題は やってあげられない だからこういう探し方の提示みたいな事しかできない http://www.google.com/search?q=c%E8%A8%80%E8%AA%9E%20%E9%96%A2%E6%95%B0%E3%81%AE%E5%91%BC%E5%87%BA%E3%81%97%E6%96%B9&hl=ja&lr=

  • arain
  • ベストアンサー率27% (292/1049)
回答No.3

No.2です。 >申し訳ありません。コンパイルも通っていないです。 少なくとも、コンパイルが通ってから質問すべき内容です。 コンパイルがとおらないのであれば、エラーメッセージくらいは出ているはずです。 そのメッセージを記載するくらいはしましょう。 処理を教えることはしません。 >ちなみに、「べき乗」(getbekijyo)そのものの処理が間違っています。 >「べき乗」がどういったものかよく調べてみてください。 に追加して「再帰呼び出しがどういったものか調べてください。」 としか言えません。 まず、「どのような処理を行いたいのか」を「頭の中だけ」ではなく文章でもフローチャートでも何でも構いませんから、書き出してみてください。 それによって多少はやりたいことが整理できます。 そしてプログラムを作成しエラーがでなくなったら、想定している結果と実際の結果を比較し、どのタイミングで変数にどのような値が入っているかを確認していってください。

  • arain
  • ベストアンサー率27% (292/1049)
回答No.2

まず、実際にコンパイルまでこぎつけていますか? 実際のソースそのものであれば、コンパイル通りませんよ。 >kekka=get; bekijyo(number1,number2); kekka=getbekijyo(number1,number2); の間違いでは? >int get; bekijyo(int,int); >z=x; getbekijyo(x,y-1); も非常に見難い。 ちなみに、「べき乗」(getbekijyo)そのものの処理が間違っています。 「べき乗」がどういったものかよく調べてみてください。

haihi
質問者

補足

申し訳ありません。コンパイルも通っていないです。 アドバイスのようにすると、 #include "stdafx.h" int getbekijyo(int,int); void main(void) { int number1,number2; int kekka; number1=6; number2=4; kekka=getbekijyo(number1,number2); printf("%dの%dは%dです。); } int getbekijo(int x,int y) { int z; if(y==1) return(x); z=x; getbekijyo(x,y-1); return(z); } こうすればよいのでしょうか?

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

>どこが間違っているか教えて >int get; bekijyo(int,int); >kekka=get; bekijyo(number1,number2); >z=x; getbekijyo(x,y-1); 文法をもう少し理解した方が良いと思う。

haihi
質問者

補足

申し訳ありません。一応上のように直してみたのですがやはりまだうまくいきません。具体的にどう違うか教えていただけるとありがたいです。

関連するQ&A

専門家に質問してみよう