浮動小数xと整数nを引数にとり、xのn乗を返す関数を定義して、
ユーザーがx,nを入力すると計算結果を表示するプログラムを作っています。
しかし、整数には対応できるものの、x=0.9,n=-5などと入力すると"Segmentation fault"と表示されてしまいます。
型の指定の方法がよろしくないのだろうとは思うのですがどう修正したらいいかがわかりません。ご協力よろしくお願いします。
C++
1#include <stdio.h> 2 3double power(double x, int n){ 4 5 if (n == 0) 6 { 7 return 1; 8 } 9 else { 10 return x * power(x , n-1); 11 } 12} 13 14int main(){ 15 double x; 16 int n; 17 18 printf("x = "); 19 scanf("%lf", &x); 20 printf("n = "); 21 scanf("%d", &n); 22 printf("x ** n = %f\n", power(x, n)); 23 return 0; 24}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2022/04/25 03:18