BJ | spin on the RITZ

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*にキャストなしで入れてるけどいいの?って警告出るはずだよ・・・・・



もう寝ます・・・・おやすみなさい・・・・