計算機科学のブログ

Cを始める - Cの世界に飛び込む - コンパイル、出力

Head First C ―頭とからだで覚えるCの基本David Griffiths(著)、 Dawn Griffiths(著)、 中田 秀基(監修)、 木下 哲也(翻訳)、 O’Reilly Media)の 1章(Cを始める - Cの世界に飛び込む)、p.23(コンパイラになってみよう)の解答を求めてみる。

コード

main.c

#include <stdio.h>
int main()
{
    // A
    // 小さいカード
    puts("A");
    int card = 1;
    if (card > 1)
        card--;
    if (card < 7)
        puts("小さいカード");
    else
    {
        puts("エース!");
    }
    // B
    puts("B");
    card = 1;
    if (card > 1)
    {
        card--;
        if (card < 7)
            puts("小さいカード");
        else
            puts("エース!");
    }
    // C
    // エース!
    puts("C");
    card = 1;
    if (card > 1)
    {
        card--;
        if (card < 7)
            puts("小さいカード");
    }
    else
    {
        puts("エース!");
    }
    // D error
    // card = 1;
    // if (card > 1)
    // {
    //     card--;
    //     if (card < 7)
    //         puts("小さいカード");
    //     else
    //         puts("エース!");
}

入出力結果(Terminal, Zsh)

% cc main.c && ./a.out
main.c:50:6: error: expected '}'
   50 |     }
      |      ^
main.c:3:1: note: to match this '{'
    3 | {
      | ^
1 error generated.
% cc main.c && ./a.out
A
小さいカード
B
C
エース!
%