60日間全力プログラミング

プログラミング初心者が二ヶ月間でどこまでいけるかを記録したプログラミング学習ブログ

R44 1,00 動作しない後で見直し

考察
初期値としてすべて0を格納する。int maisu_t[9]={0,0,0,,,,,,,};ってこと
amari = kingaku;  あまりに金額を格納するとはこのこと。
Floating point exception: 8 ... 浮動小数点例外(変数名の入力間違い、ゼロ除算、数学的なエラー、オーバーフロー、アンダーフロー、型の違い)
 
問題
 金額を入力して10000円~1円の金種表を作成する。2000円札は考えない。
 
  表示例
 
-------------------金種表計算-------------------
金額を入力してください。--->167896
10000 円: 16 枚
5000 円: 1 枚
1000 円: 2 枚
500 円: 1 枚
100 円: 3 枚
50 円: 1 枚
10 円: 4 枚
5 円: 1 枚
1 円: 1 枚
------------------------------------------------
 
 
考え方
(1)前処理
  ①金種テーブル(kinshu_t)に上記の金種を格納する。(2000円は格納しない)
  ②金種毎の枚数を格納する枚数テーブル(maisu_t)に初期値としてすべて0を格納する。
  ③金額(kingaku)を入力する。
  ④残額(amari)に金額(kingku)を格納する。
(2)金種計算(for文を使用)
 (添え字はiを使用する。初期値は0とし、増分は+1、iが9未満の間は繰り返す。)
  ①枚数(i) = 残額 ÷ 金種(i) 
  ②上記の余りを残額に格納
(2)金種表示(for文を使用)
 (添え字はiを使用する。初期値は0とし、増分は+1、iが9未満の間は繰り返す。)
  上記表示例のように金種と枚数を表示する。
 
動作しない
#include<stdio.h>
#include
<string.h>

int main(void){
   
   
int i,kingaku,amari;
   
int kinshu_t[9]={10000,5000,1000,500,100,50,5,1};
   
int maisu_t[9]={0,0,0,0,0,0,0,0,0};
   
    printf(
"-------------金種表計算--------------\n");
    printf(
"金種を入力してください。\n");
    scanf(
"%d",&kingaku);
   
    amari = kingaku;
   
for (i=0; i<9; i++) {
        maisu_t[i] = amari / kinshu_t[i];
        amari = amari % kinshu_t[i];
    }
   
   
for (i=0; i<9; i++) {
        printf(
"    %6d:%5d \n",kinshu_t[i],maisu_t[i]);
    }

    printf(
"---------------------------------------\n");
   
   
return 0;
   
}