2018年1月19日金曜日

開発環境

Head First C ―頭とからだで覚えるCの基本 (David Griffiths (著)、Dawn Griffiths (著)、中田 秀基 (監修)、木下 哲也 (翻訳)、オライリージャパン)の1章(Cを始める - Cの世界に飛び込む)、エクササイズ(p. 35)を取り組んでみる。

エクササイズ(p. 35)

コード

//
//  main.c
//  sample1
//
//  Created by kamimura on 2018/01/16.
//  Copyright © 2018 kamimura. All rights reserved.
//

#include <stdio.h>
#include <stdlib.h>

int main(int argc, const char * argv[]) {
    char card_name[3];
    int count = 0;
    do {
        puts("カード名を入力してください: ");
        scanf("%2s", card_name);
        int val = 0;
        switch (card_name[0]) {
            case 'K':
            case 'Q':
            case 'J':
                val = 10;
                break;
            case 'A':
                val = 11;
                break;
            case 'X':
                continue;
            default:
                val = atoi(card_name);
                if (val < 1 || 10 < val) {
                    printf("有効なカード名を入力してください");
                    continue;
                }
                break;
        }
        if (val >= 3 && val <= 6) {
            count++;
        } else if (val == 10) {
            count--;
        }
        printf("現在のカウント: %i\n", count);
    } while (card_name[0] != 'X');
    return 0;
}

入出力結果(Terminal)

カード名を入力してください: 
K
現在のカウント: -1
カード名を入力してください: 
Q
現在のカウント: -2
カード名を入力してください: 
J
現在のカウント: -3
カード名を入力してください: 
A
現在のカウント: -3
カード名を入力してください: 
11
有効なカード名を入力してくださいカード名を入力してください: 
10
現在のカウント: -4
カード名を入力してください: 
7
現在のカウント: -4
カード名を入力してください: 
6
現在のカウント: -3
カード名を入力してください: 
5
現在のカウント: -2
カード名を入力してください: 
3
現在のカウント: -1
カード名を入力してください: 
2
現在のカウント: -1
カード名を入力してください: 
A
現在のカウント: -1
カード名を入力してください: 
-1
有効なカード名を入力してくださいカード名を入力してください: 
X
Program ended with exit code: 0

0 コメント:

コメントを投稿