質問: yen % 5; printf("10000円札は%d枚です。\n", th10); printf(" 5000円札は%d枚です。\n", th5); printf(" 1000円札は%d枚です。\n", th); printf(" 500円玉は%d枚です。\n", hand5); printf(" 100円玉は%d枚です。\n", hand); printf(" 50円玉は%d枚です。\n", ten5); printf(" 10円玉は%d枚です。\n", ten); printf(" 5円玉は%d枚です。\n", five); printf(" 1円玉は%d枚です。\n", one); return 0; } ```
回答: 目新しい事はありませんが・・・読み込み部分を変更しました。 ``` ~/test/ctst >cat tst06.c #include #include int main() { const int kinsyu[] = { 10000, 5000, 2000, 1000, 500, 100, 50, 10, 5, 1, 0 }; char buf[32]; printf("金額を入力してください\n"); fgets( buf, sizeof buf, stdin ); int kingaku= (int)strtol( buf, 0, 10 ); // if( kingaku < 0 ){ puts("借金は計算できません ;-p\n"); exit(1); } int inx= 0; while( kinsyu[inx] ){ int num= kingaku / kinsyu[inx]; printf( "%d円 %d枚\n", kinsyu[inx], num ); kingaku %= kinsyu[inx]; inx++ ; } return 0; } ``` ~/test/ctst >./a.out 金額を入力してください 12345 10000円 1枚 5000円 0枚 2000円 1枚 1000円 0枚 500円 0枚 100円 3枚 50円 0枚 10円 4枚 5円 1枚 1円 0枚 ~/test/ctst >./a.out 金額を入力してください 0 10000円 0枚 5000円 0枚 2000円 0枚 1000円 0枚 500円 0枚 100円 0枚 50円 0枚 10円 0枚 5円 0枚 1円 0枚 ~/test/ctst >./a.out 金額を入力してください -12345 借金は計算できません ;-p