ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

初心者用プログラミング手動検索コミュの質問です

  • mixiチェック
  • このエントリーをはてなブックマークに追加
言語名はなにか
・何をしたいのか
・自分はどこまでしたのか
・結果どうなっているのか

言語名:C++

したいこと:
毎年1万円を積立預金したら1年後から10年後までにいくらになるか(元利合計)の表を作りたい。3通りの年利率を読み込み、計算、出力するプログラムを作成せよ。


自分の作成したプログラム:ソースをはります
#include <iostream.h>
main()
{
const Lastyear = 1000;
const Nyokin = 10;
const Apetern = 0.15;
const Bpetern = 0.2;
const Cpetern = 0.35;


int total;
int year = 0;
double riritu;

cout<<"このプログラムは毎年1万円を積立預金したとき、元利合計をもとめるプログラムです\n";
//年利率を読み込む
cout << "今年あなたは1万円を預金しました。\n";
cout << "年利率は3通りあり0.15%、0.2%、0.35%で、単利として固定金利として考えます。現在は";
cin >> riritu;
cout << "%です。\n";
cout << "なので";

for(year=1 ; year<=Lastyear ; year++){
if(riritu == Apetern){
total = Nyokin * year * Apetern / 100 + Nyokin * year
cout << endl << year << "年後あなたの元利合計は" << total << "円です" <<endl;
}else if(riritu == Bpetern){
total = Nyokin * year * Bpetern / 100 + Nyokin * year
cout << endl << year << "年後あなたの元利合計は" << total << "円です" <<endl;
}else (riritu == Cpetern){
total = Nyokin * year * Cpetern / 100 + Nyokin * year
cout << endl << year << "年後あなたの元利合計は" << total << "円です" <<endl;
}
}

//終了処理
cout <<"これでプログラムを終了します";


return 0;
}


結果:以下のところのステートメントに「;」がないということで、エラーになります

・ cout << endl << year << "年後あなたの元利合計は" << total << "円です" <<endl;

・ cout << endl << year << "年後あなたの元利合計は" << total << "円です" <<endl;

・}else (riritu == Cpetern){

解答おねがいします。
なぜそのようになるのか、全くわかりません。

コメント(9)

ありがとうございます。

確かに実行はでくるのですが、どんな年利率を入力しても
1年後は10000円。
2年後は20000円
3年後は30000円



としかなりません。
なぜなのでしょうか??
お願いします
そらプログラムの内容見てないからバグぐらいあるでしょうと思いますが・・・

今見たところ
このプログラムはよくわかんないです
というか本当にこのプログラムで実行していますか・・・・?

思ったことを挙げます
・一万円はどの変数に・・・・?
・キーボードで入力したいのか定数から計算させたいのか?
・totalはint型で小数点以下は切り捨てられるが良いか?
・修正後にどんなプログラムになっているのか?
・実際に入力した値はなにか?
・実際に出力されたのはどんなテキストか

私はあなたのパソコンを見てないので
それでも伝わるようにしていただけないと回答できかねます
わかりにくくてすみません。
僕自身最近、penからC++に移行してC++はじめたばかりでC++えおいまいちわかっていません。

なので、わかる限りひぎーさんの質問に答えたいと思います。
・一万円はどの変数に・・・・?
間違えてました。
Nyokin = 10000とします。

・キーボードで入力したいのか定数から計算させたいのか?
定数とキボードで入力したものと定数を組み合わせて計算はできないんですか?
無知ですみません。


・totalはint型で小数点以下は切り捨てられるが良いか?
いいと思ってます。



・修正後にどんなプログラムになっているのか?
修正後のプログラムのソースを張ります
//毎年1万円を積立預金したら1年後から10年後までにいくらになるか(元利合計)の表を作りたい。
//3通りの年利率を読み込み、計算、出力するプログラムを作成せよ。
//Weitten by Yuki Shimizu(2010 8.17)

#include <iostream.h>
main()
{
const Lastyear = 10;
const Nyokin = 10000;
const Apetern = 0.15;
const Bpetern = 0.2;
const Cpetern = 0.35;


int total;
int year = 0;
double riritu;

cout<<"このプログラムは毎年1万円を積立預金したとき、元利合計をもとめるプログラムです\n";
//年利率を読み込む
cout << "今年あなたは1万円を預金しました。\n";
cout << "年利率は3通りあり0.15%、0.2%、0.35%で、単利として固定金利として考えます。現在は";
cin >> riritu;
cout << "%です。\n";
cout << "なので";

for(year=1 ; year<=Lastyear ; year++){
if(riritu == Apetern){
total = Nyokin * year * Apetern / 100 + Nyokin * year
;cout << endl << year << "年後あなたの元利合計は" << total << "円です" <<endl;
}else if(riritu == Bpetern){
total = Nyokin * year * Bpetern / 100 + Nyokin * year
;cout << endl << year << "年後あなたの元利合計は" << total << "円です" <<endl;
}else (riritu == Cpetern);{
total = Nyokin * year * Cpetern / 100 + Nyokin * year
;cout << endl << year << "年後あなたの元利合計は" << total << "円です" <<endl;

}

//終了処理
cout <<"これでプログラムを終了します";




・実際に入力した値はなにか?
・実際に出力されたのはどんなテキストか


例えば、利率に0.1を入れたらプログラムを終了させたいのですが
コンパイルすると、以下のように表示されます
D:\プログラミング1ソフトウェア\プログラミング1\C>kadai71
このプログラムは毎年1万円を積立預金したとき、元利合計をもとめるプログラムです
今年あなたは1万円を預金しました。
年利率は3通りあり0.15%、0.2%、0.35%で、単利として固定金利として考えます。現在
は0.1
%です。
なので
1年後あなたの元利合計は1000円です

2年後あなたの元利合計は2000円です

3年後あなたの元利合計は3000円です

4年後あなたの元利合計は4000円です

5年後あなたの元利合計は5000円です

6年後あなたの元利合計は6000円です

7年後あなたの元利合計は7000円です

8年後あなたの元利合計は8000円です

9年後あなたの元利合計は9000円です

10年後あなたの元利合計は10000円です
これでプログラムを終了します -- Press any key to exit (Input "c" to continue) --



また0.2を入れた場合は計算手順をふんで、2年後、3年後の預金を表示したいのですが、以下のように出力されます

D:\プログラミング1ソフトウェア\プログラミング1\C>kadai71
このプログラムは毎年1万円を積立預金したとき、元利合計をもとめるプログラムです
今年あなたは1万円を預金しました。
年利率は3通りあり0.15%、0.2%、0.35%で、単利として固定金利として考えます。現在
は0.2
%です。
なので
1年後あなたの元利合計は1000円です

2年後あなたの元利合計は2000円です

3年後あなたの元利合計は3000円です

4年後あなたの元利合計は4000円です

5年後あなたの元利合計は5000円です

6年後あなたの元利合計は6000円です

7年後あなたの元利合計は7000円です

8年後あなたの元利合計は8000円です

9年後あなたの元利合計は9000円です

10年後あなたの元利合計は10000円です
これでプログラムを終了します -- Press any key to exit (Input "c" to continue) --



ぼくがわかる範囲で解答したので、わかりにくいと思います。
申し訳ありません。

お願いします




























































この後ろの空白はいったい・・・・・w
書きづらい・・・w

total = Nyokin * year * Bpetern / 100 + Nyokin * year
の後ろに;はつけた方がいいです。

あとtotalをdouble型にしてみてください。

あとApattern〜Cpatternもdouble型にしてみてください。


そんでもう一回実行してみてください。
ありがとうございます!

できました!


わかりづらい文面のなか丁寧に教えていただき、本当にありがとうございます


またなにかあったらお願いします
> シミッチャソさん
いえいえ
ところでどうしてこうなるのかわかりました??
わからなければC キャストで検索してください〜

それでもわかんなかったら聞いてください

たぶんtotalは整数型になおして大丈夫です

あとこのプログラムで指定の3つ以外の利率が入力されると必ずCパターンになります
そこはOKならばあとは問題無いはずです〜
どうしてそうなるかわかりませんでした。
どうしてなのですか?

教えてください!


後、>>指定の3つ以外の利率が入力されると必ずCパターンになります
については改善できました。

ありがとうございます。
> シミッチャソさん
ここの仕様は私もうろ覚えだったのですが
constのみを指定すると整数型になるのです
整数型に少数を入れると少数点以下が切り捨てられます
つまりAにもBにもCにも0がはいっていた…
という訳です

C言語で数字を扱うときにはそれが何型か考えないと思わぬ結果が出ます
得に少数と整数を混ぜて扱う時には注意してください〜

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

初心者用プログラミング手動検索 更新情報

初心者用プログラミング手動検索のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング