
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語の問題です
-
コマンドプロンプトがすぐ消える
-
TeraPadの設定方法
-
*を使ったジグザグのラインをプ...
-
コンパイルエラーについて
-
配列データをExcelファイルとし...
-
wsprintfの書式制御文字列につ...
-
縦の棒グラフ
-
【C言語教えてください】sin波...
-
c言語でAからZまでを表示する...
-
10個出力で改行したいのですが...
-
三角形の判別
-
C言語です このプログラミング...
-
C言語初心者です。次の問題で質...
-
printf、最大値の出し方
-
コンパイルすると『breakの位置...
-
UnixでC言語を学習中(初心者で...
-
空Enterの扱い方
-
cshの文字列操作(0埋め)
-
srand(time(NULL))の使い方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
10個出力で改行したいのですが...
-
c言語でAからZまでを表示する...
-
(C言語)めちゃくちゃな値にな...
-
コマンドラインに出力した文字...
-
コンパイルエラーについて
-
コマンドプロンプトがすぐ消える
-
勝率をプログラムに
-
テキストカーソル位置の取得
-
三角形の判別
-
【C言語教えてください】sin波...
-
4の倍数を論理演算で表す。。
-
C言語で、「自然数nを入力し、n...
-
入力したお金の金額からお札の...
-
cshの文字列操作(0埋め)
-
switch分のケースを範囲数?に...
-
scanfに文字が入力されたときに...
-
プログラミングについての質問です
-
unsigned int型について
-
ダブルポインタで2次元配列を作成
-
円の面積を求めるプログラミン...
おすすめ情報