• 締切済み

C言語についてです。

mのn乗を計算する関数power()を作成せよ. ただし,関数power()はm,nを引数とし, 戻り値としてmのn乗の値を返すものとする. m,nは,正整数とする.提出するプログラムには, 関数power()だけでなく,m,nを入力し, mのn乗を出力するメイン関数main()を含むものとする. main()は,power()の前に記述すること. また,power()のプロトタイプ宣言も記述する これについて、作ってみたのですが実行できません。 どこが間違ってるか教えてください。 #include<stdio.h> int power(int m, int n); int main() { int m,n; int a,sum; printf("整数を入力してください:"); scanf("%d",&m); printf("何乗しますか?"); sum = power(n,m); printf("%dの%d乗は%dです。\n",n,m,sum); } int power(int m, int n) { int a, kotae; kotae = 1; for(a=1; a<=n; a++) kotae = kotae * m; return kotae; }

みんなの回答

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.5

>printf("整数を入力してください:"); >scanf("%d",&m); >printf("何乗しますか?"); >sum = power(n,m); nを入力していない、という点については、 他の回答者さんからの回答のとおりです。 質問者さんは、「mをn乗したい」のですか? それとも、「nをm乗したい」のですか? なお、#1さんの回答はでたらめなので、信じてはいけません。 >>int main() >ではなく void main() main関数の戻り値はint型であるのが正しいです。 質問者さんのコードにおいて、main関数から returnしていないことの方が問題ありです。 >kotae = m ^ n; >でよろしいのでは? C言語にべき乗の演算子はありません。 ^ は、べき乗ではなく、別の意味を持っています。

  • tsunji
  • ベストアンサー率20% (196/958)
回答No.4

nのscanfがないじゃん

  • Wr5
  • ベストアンサー率53% (2173/4061)
回答No.3

>int m,n; >int a,sum; > >printf("整数を入力してください:"); >scanf("%d",&m); >printf("何乗しますか?"); >sum = power(n,m); nが未初期化のまま参照されてますが問題ありませんか? aが未使用だったりしますが(以下略) お友達が同じ質問を上げて、回答貰っているみたいですよ。 http://okwave.jp/qa/q8121342.html

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

どう「実行できない」のですか?

  • papapa0427
  • ベストアンサー率25% (371/1472)
回答No.1

>int main() ではなく void main() でpower関数の中ではmもn上の計算がされていない。 >kotae = 1; >for(a=1; a<=n; a++) >kotae = kotae * m; ではなく kotae = m ^ n; でよろしいのでは?

関連するQ&A