![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
C言語で以下の問題で困っています。
「年複利の定期預金を始める。満期時の残高を計算せよ。
・満期時の残高 = 元金×(1+年利率)^年数
・whileを、使う。」
という問題です。そこで、以下のようにプログラムを書きましたが、うまく動きません。どこが、間違っているのでしょうか?分かる方、お願いします。
#include <stdio.h>
main()
{
/*初期化*/
int a=1, m, t;
float b=1, n;
/*値の入力*/
printf ("元金を入力してください。\n");
printf ("元金 =");
scanf ("%d", &m);
printf ("年利率を入力してください。\n");
printf ("年利率 =");
scanf ("%f", &n);
printf ("定期の年数を入力してください。\n");
printf ("定期の年数 =");
scanf ("%d", &t);
while (a <= t){
b = b *(1 + n);
a = a + 1;
}
/*出力*/
printf ("満期時の残高は、%fです。", m*b);
}
No.5ベストアンサー
- 回答日時:
No1、No2 の sunasearch さんの回答に補足します。
scanf() の書式指定は float型⇒%f、double型⇒%lf です。
つまり、husigikazetukai さんのサンプルソースであれば、float型を使っているようですので、%f で問題ありません。
ちなみに、printf() の書式指定は float型、double型に関わらず %f のみで、%lf は未定義だったはずです。
# でも、たいていのコンパイラはこのあたりを無難に処理してくれる
# ようですけどねぇ。
# scanf() の仕様に引きずられて、printf() の場合も double 型に %lf を
# 使ってしまう人が多いせいなんだと思います。
ま、こちらはご参考までに。。。
No.3
- 回答日時:
ちゃんと動いているようだが…
元金を入力してください。
元金 =10000
年利率を入力してください。
年利率 =0.072
定期の年数を入力してください。
定期の年数 =10
満期時の残高は、20042.312145です。
7.2%の複利10年で約2倍になってるよ?
…おかしいトコ気づいた?
複利計算について少しわからない部分がありまして、少し不安でした。やはり、このソースで良かったのですね。
ご回答ありがとうござしました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語(構造体) 3 2022/07/05 20:08
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# C言語階乗の総和を求める 2 2023/03/04 23:31
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 割られる整数と割る整数を受け取って、商と余りを出力す 3 2022/07/05 10:23
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 最初に正の整数nの入力を受け付け、次に分数の分子と分 1 2022/07/19 17:03
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- C言語・C++・C# 至急教えてください。プログラミングの問題です。 malloc関数を使ってください!お願いします! 最 1 2022/07/21 09:28
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
[C言語] 関数を利用する計算
C言語・C++・C#
-
*をユーザーが入力した数字の数だけ表示するプログラムの作り方を教えてください
C言語・C++・C#
-
C言語プログラミング
C言語・C++・C#
-
-
4
”/”を使わずに割り算したいんですが…
C言語・C++・C#
-
5
各桁の和を返す関数
C言語・C++・C#
-
6
複利の利率を求めるプログラムをC言語で作りたいんですが、、、
C言語・C++・C#
-
7
C言語
C言語・C++・C#
-
8
c言語for文
C言語・C++・C#
-
9
『Meriam’s ENGINEERING MECHANICS:DYNAMICS』 の第9版を大学の
工学
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
10個出力で改行したいのですが...
-
strcmp
-
error C2143: 構文エラー : ';'...
-
スレッドとメッセージキューに...
-
C言語 タイマーのソースについて
-
C言語プログラミング
-
Cプログラムについて
-
インクリメント演算子をprintf...
-
コマンドラインに出力した文字...
-
C言語の数値入力
-
コンパイルエラーについて
-
c言語でAからZまでを表示する...
-
hit&bolwのプログラミングがで...
-
プログラミング言語C
-
C言語のヘッダーファイルの作成...
-
C++ 二次関数の重解、虚数解が...
-
unsigned int型について
-
scanfで正しい値を入力できない
-
int型 00 を表示するのに0とな...
-
関数について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10個出力で改行したいのですが...
-
【C言語教えてください】sin波...
-
printf で二進表示を行いたい。
-
c言語でAからZまでを表示する...
-
コマンドラインに出力した文字...
-
strcmp
-
4の倍数を論理演算で表す。。
-
C言語での、年複利の計算方法...
-
C言語 プログラミング
-
scanfに文字が入力されたときに...
-
hit&bolwのプログラミングがで...
-
%P と %X の違い
-
unsigned int型について
-
printf( " %2d", p * q );
-
cshの文字列操作(0埋め)
-
改行について 1行に何個かづ...
-
8人分のテストの点数を入力し、...
-
入力したお金の金額からお札の...
-
三角形の判別
-
テキストカーソル位置の取得
おすすめ情報