こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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);
}

投稿日時 - 2008-07-23 17:31:49

QNo.4198553

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

19人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.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=

投稿日時 - 2008-07-24 22:11:14

ANo.3

No.2です。
>申し訳ありません。コンパイルも通っていないです。
少なくとも、コンパイルが通ってから質問すべき内容です。
コンパイルがとおらないのであれば、エラーメッセージくらいは出ているはずです。
そのメッセージを記載するくらいはしましょう。

処理を教えることはしません。
>ちなみに、「べき乗」(getbekijyo)そのものの処理が間違っています。
>「べき乗」がどういったものかよく調べてみてください。
に追加して「再帰呼び出しがどういったものか調べてください。」
としか言えません。

まず、「どのような処理を行いたいのか」を「頭の中だけ」ではなく文章でもフローチャートでも何でも構いませんから、書き出してみてください。
それによって多少はやりたいことが整理できます。
そしてプログラムを作成しエラーがでなくなったら、想定している結果と実際の結果を比較し、どのタイミングで変数にどのような値が入っているかを確認していってください。

投稿日時 - 2008-07-23 18:52:51

ANo.2

まず、実際にコンパイルまでこぎつけていますか?
実際のソースそのものであれば、コンパイル通りませんよ。
>kekka=get; bekijyo(number1,number2);
kekka=getbekijyo(number1,number2);
の間違いでは?

>int get; bekijyo(int,int);
>z=x; getbekijyo(x,y-1);
も非常に見難い。

ちなみに、「べき乗」(getbekijyo)そのものの処理が間違っています。
「べき乗」がどういったものかよく調べてみてください。

投稿日時 - 2008-07-23 17:44:03

補足

申し訳ありません。コンパイルも通っていないです。

アドバイスのようにすると、
#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);
}

こうすればよいのでしょうか?

投稿日時 - 2008-07-23 18:03:59

ANo.1

>どこが間違っているか教えて

>int get; bekijyo(int,int);
>kekka=get; bekijyo(number1,number2);
>z=x; getbekijyo(x,y-1);

文法をもう少し理解した方が良いと思う。

投稿日時 - 2008-07-23 17:37:57

補足

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

投稿日時 - 2008-07-23 18:06:03

あなたにオススメの質問