C言語の勉強をしていて、for文と戻り値を使った階乗について分からずに困っています。
以下の点に留意して、階乗を計算するプログラムを作成する。
階乗とは、数字を1つづつ減らしながら掛け合わせたものです。つまり
5の階乗:5×4×3×2×1=120
3の階乗:3×2×1=6
となります。
main内
1)整数型の変数kazu、kekkaを宣言する。
2)“階乗を計算します。”を表示する。
3)実行例と同様の表示になるように、“整数を入力してください”を表示し、入力された値を、変数kazuに読み込む。
4)作成する関数名は、kaijyoとし、kazuを引数とし、戻り値をkekka に代入する。
6)“○の階乗は ○です。”と表示する。
関数kaijyo内
1)引数を変数名xとする。
2)整数型の変数i、valを宣言する。
3)計算結果をvalに入れていくために、valを初期化する(下記注意参照)。
4)iをカウンターとするfor文と複合代入演算子を使って階乗を計算する。
5)valの内容が戻り値となるようにする。
注意:階乗を計算するために、for文の中で複合代入演算子を使って階乗を計算します。しかし、for文に入る前のvalの初期化には注意が必要です。0に何を何回かけても0だと言うことを思い出してください。
という問題です。
それで私は下の通りに作りました。
#include <stdio.h>
int kaijyo(int x);
void main(void)
{
int kazu,kekka,kaijyo,sum;
printf("階乗を計算します。\n");
printf("整数を入力してください");
scanf("%d",&kazu);
kekka=kaijyo(kazu);
printf("%dの階乗は%dです。",kazu,kekka);
}
int kaijyo(int x)
{
int i,val;
val=1;
x=1;
for(i=1;i<=val;i++){
x=x*i;
}
return val;
}
しかし、メイクして実行してもどの階乗でも256になってしまいます。
どこが間違っているのか分からずに困っています。
よかったら教えてください。
よろしくお願いします。
カテゴリを間違ってしまっていたらすみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
CRC8を教えてください
-
排他的論理和 BCC(水平パリテ...
-
ホームページビルダーで料金の...
-
計算量の少ないn乗根の求め方
-
変化させるセルが変化しない
-
0xf0=256?
-
C言語についてです。 再帰を使...
-
エクセル VBAで 再計算を...
-
移動平均を計算するプログラム
-
C言語について 下の画像は do-w...
-
OpenGLでの軸回転について
-
C言語初心者。静磁場の計算。台...
-
傾いた四角形内の範囲の条件式
-
CRCについて教えてください
-
C言語で N行*M列 の逆行列を求...
-
VB6.0でのバイナリデータの扱い...
-
VBAでの勤務時間計算
-
Androidでのメトロノーム開発
-
Xwindowのプログラミング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
排他的論理和 BCC(水平パリテ...
-
VBAの再計算が反映されない件に...
-
バッチファイルでウインドウを...
-
変化させるセルが変化しない
-
EXCELなどで「返す」という表現
-
傾いた四角形内の範囲の条件式
-
エクセルで特定のセルのみを任...
-
CとFORTRANの計算速度はどちら...
-
Visual C++でdebugとreleaseで...
-
モジュラス103の計算とは何でし...
-
なぜオーバーフローになるので...
-
VB6で正確なミリ秒を計測したい...
-
VBでReplace
-
引き放し法による除算アルゴリ...
-
matlabで計算終了
-
CRC8を教えてください
-
VBAで関数をつくる
-
Excel VBAの残業時間の合計計算...
-
等高線を計算したい
おすすめ情報