釣銭
ケンピハウスから0時前に帰宅ー
今日は冥王星、鮫、金さんとポトフを食べてきました
以外に人数が集まらなかった
夜、22時頃に懐かしのいっちゃん登場。
i-Padでビデオとか写真とか近況を鑑賞してきました
で今、家に帰ってきてから軽く書いてみた、おつりを求めるプログラム
おつりの枚数が最小になるようにしてあります。
あまり整形してないのでそれほど綺麗ではないです
for文使えば後半とかもっと綺麗になりますが、列挙体をなんとなく使いたかったのと、switch文を使いたかったという理由で。
#include<stdio.h> enum En{One,Five,Ten,Fifty,Hundred,Fivehundred}; int main(){ int i,n,sellect,change; int coin[6] = {0,0,0,0,0,0}; int goods[4] = {121,202,313,555}; n = 1200; printf("1:121\n2:202\n3:313\n4;555\n\t select number\n--->"); sellect = 3; change = n - goods[sellect - 1]; if(goods[sellect-1] > n){ printf("お金が足りません\n"); return 1; } printf("おつりは%d円です\n",change); coin[Fivehundred] = change / 500; if(coin[Fivehundred] != 0) change -= 500 * coin[Fivehundred]; coin[Hundred] = change / 100; if(coin[Hundred] != 0) change -= 100 * coin[Hundred]; coin[Fifty] = change / 50; if(coin[Fifty] != 0) change -= 50 * coin[Fifty]; coin[Ten] = change / 10; if(coin[Ten] != 0) change -= 10 * coin[Ten]; coin[Five] = change / 5; if(coin[Five] != 0) change -= 5 * coin[Five]; coin[One] = change; for(i = 5; i >=0 ; i--){ if(coin[i] != 0){ switch(i){ case One:printf("1円玉\t");break; case Five:printf("5円玉\t");break; case Ten:printf("10円玉\t");break; case Fifty:printf("50円玉\t");break; case Hundred:printf("100円玉\t");break; case Fivehundred:printf("500円玉\t");break; } printf("-----%d枚\n",coin[i]); } } return 0; }
それと、昼間のダーリントン接続ですが
おそらく、増幅しすぎて発生したノイズのようなものではないかと
実用するにはあまりにも増幅度が高いので改善する必要有
Haskell使ったパーサ作りをそろそろ本気で始めたい