プロが教える店舗&オフィスのセキュリティ対策術

この度もこのサイトでお世話になったのですが、
またプログラミングについて質問させていただきます。

「勝ち数・負け数を入力して、勝率を?割?分?厘という
カタチで表示する」というプログラム(1厘以下は切り捨て)
はどのように作れば良いでしょうか?

A 回答 (4件)

#include <stdio.h>



int main(void)
{
int ks,ms,ss;
printf("勝ち数?");
scanf("%d",&ks);
printf("負け数?");
scanf("%d",&ms);
ss = ks + ms;
printf("勝率%d割%d分%d厘\n",ks * 10 / ss,(ks * 100 / ss) % 10,(ks * 1000 / ss) % 10);
return 0;
}

この回答への補足

printf("勝率%d割%d分%d厘\n",ks * 10 / ss,(ks * 100 / ss) % 10,(ks * 1000 / ss) % 10);
の部分の

『ks * 10 / ss』、
『(ks * 100 / ss) % 10』、
『(ks * 1000 / ss) % 10』は、なぜこのようになるのですか?
割合で頭がこんがらがって分からないです。

補足日時:2009/01/28 19:10
    • good
    • 0
この回答へのお礼

すいません。分かりました。
int型で勝ち数÷(勝ち数+負け数)をすると小数点以下が切り捨てで
0になってしまうので勝ち数に10をかけるのですね。(割の時)

どうもプログラムの仕組みと計算を考えるのが
苦手なようです。

お礼日時:2009/01/29 18:49

5勝5敗なら、勝率は5割丁度になりますよね?


なので、
実数変数=勝ち数/(勝ち数+負け数);
で、勝率が求められます。
この変数の中身の小数点第1位と第2位と第3位を求めれば、?割?分?厘が求められます。
    • good
    • 0
この回答へのお礼

ありがとうございます。
よく考えたら分かりました。

お礼日時:2009/01/29 18:51

勝率を求める数式は分りますよね?


それをプログラム化するだけですけど。難しい条件式もないし何が問題なんだか?ですね。
どちらにしても問題の丸投げは削除対処ですから、自分で作成した部分を示してください。

この回答への補足

すみません。
今度からは、分からない部分を具体的にした上で
質問させていただこうと思います。

補足日時:2009/01/28 18:35
    • good
    • 0

わからないところはどこですか?

この回答への補足

a,bにそれぞれ勝ち数と負け数を
(キーボードから)代入してcにa,bの合計を入れた後
どういう風に割・分・厘の計算をすればいいでしょうか?
(割=1/10、分=1/100、厘=1/1000という基本的な事は
もちろん分かるのですが)割合が苦手でうまくプログラムで表せません。
情けない…

補足日時:2009/01/28 18:55
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!