xの5乗というのをC言語で表すとき、どのようにすれば表すことができますか?(printf関数などによって画面への出力)

xの5乗というのをC言語で表すとき、どのようにすれば表すことができますか?(printf関数などによって画面への出力)

補足

あ、すいません。説明が下手でした。 xの5乗を画面に出力というのは、つまり、xを変数ではなく、「分からない数」として、xを数同等にして、画面にx*x*x*x*xなどと表示したいということです。

C言語関連1,026閲覧xmlns="http://www.w3.org/2000/svg">100

ベストアンサー

0

入力は1以上が条件として。 #include <stdio.h> int main(void) { int y; printf("Input y of x^y? "); scanf("%d", &y); if(y<=0) return 0; printf("x^%d = x", y); while(--y) printf("*x"); printf("\n"); return 0; } ----- 実行結果 ----- Input y of x^y? 7 x^7 = x*x*x*x*x*x*x

ThanksImg質問者からのお礼コメント

回答ありがとうございます。 こんな簡単なコードでかけるなんて、初めて知りました(math.hを読み込むことが無く)。 では

お礼日時:2010/12/16 0:53

その他の回答(2件)

0

pow(double x, double y) という関数を使うことで、 x^yを表わすことができます。 xの5乗であれば、 pow ( x , 5 ) とすれば大丈夫です。 なお、この関数の使用には <math.h>を include する必要があります。 今回のように5という整数が分かってるのなら、 純粋に x*x*x*x*x というようにしてもよいですが。 キーワードが分かっているのでしたら、 "c言語 べき乗" などと検索すれば分かりますよ。

0

【補足について】===== > 画面にx*x*x*x*xなどと表示したい こういうことでしょうか? == #include <stdio.h> int main(void) { int i; for (i = 0; i < 5; i++) { if (i != 0) printf("*"); //最初以外は「x」を表示する前に「*」を表示 printf("x"); } printf("\n"); return 0; } ================== 【補足】 ループ文がおかしかったので修正しました。 再帰の場合を追記 ① xのn乗といった場合、ループでxをn回かける y = x; for (i = 0; i < 5-1; i++) x *= y; ② math.hのpow関数を利用する x = pow(x, 5); ③ べき乗を計算する関数を自作する(↓例) int pow2(int x, int n) { if (n < 2) return x; else return x * pow2(x, n-1); } こんな感じでしょうか。