2014年1月4日土曜日

開発環境

C実践プログラミング 第3版 (Steve Oualline (著)、 望月 康司 (監訳) (翻訳)、谷口 功 (翻訳)、オライリー・ジャパン)のⅢ部(高度なプログラミング概念)の23章(プログラミングに関する格言)、23.8(終わりに)、設問23-1.を解いてみる。

その他参考書籍

設問23-1.

if文でnumber =! 2となっているから。これは、変数numberに!2を代入することになる。そして、!2は2の否定、0になるので、偽。よって常に2と認識してしまう。

修正。

コード

sample.c

#include <stdio.h>

int main()
{
    char line[80];
    int number;
    
    printf("Enter a number: ");
    
    fgets(line, sizeof(line), stdin);
    sscanf(line, "%d", &number);
    
    if(number != 2){
        printf("Number is not two\n");
    } else {
        printf("Number is two\n");
    }
    
    return (0);
}

入出力結果(Terminal)

$ cc -g -o sample sample.c
$ ./sample
Enter a number: 10
Number is not two
$

0 コメント:

コメントを投稿