BJ
パソコン甲子園2007年本選 問題12 ブラックジャック
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
int i, score, num, one_count;
char buf[100], *ptr;
while (1) {
fgets(buf, sizeof(buf), stdin);
if (buf[0] == '0') break;
score = one_count = 0;
ptr = strtok(buf, " ");
do {
num = atoi(ptr);
if (num == 1) one_count++;
if (num < 10) score += num;
else score += 10;
} while ((ptr=strtok(NULL, " ")) != NULL);
for (i = 0;i < one_count;i++)
if (score+10 <= 21)
score += 10;
if (score <= 21)
printf("%d\n", score);
else
printf("0\n");
}
return 0;
}
50点中25点はもらえるでしょ。多分。
半分もらえなかったらどうしよう・・・・・高校生が解くような問題なのに・・・・
っていうか
数字[半角スペース]数字[半角スペース]・・・・・・・・・が適当な数だけ続く文字列から、数値を順に取り出すのってほかに方法なかったっけ・・・・・strtok使っちまったよ・・・・
strtokがどのヘッダで宣言されてるか忘れちまってたよ・・・・・・
そりゃint型をchar*にキャストなしで入れてるけどいいの?って警告出るはずだよ・・・・・
もう寝ます・・・・おやすみなさい・・・・