ぶろぐ

日記です

なべあつもやってみた


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

int is3aho(int num) {

        /* ループ用変数 */
        int i = 0;

        /* 文字列変換用 */
        char str[255];
        sprintf(str, "%d", num);

        /* 結果保持用 */
        int result = 0;

        /* 3あるかなー? */
        while(str[i] != '\0') {
                if(str[i] == '3') {
                        result = 1;
                        break;
                }
                i++;
        }

        return result;
}

int main(int argc, char **argv) {

        /* 最低限引数チェックはしておくのさ */
        if(argc != 2) {
                printf("usage: 3aho [数字]\n");
                return EXIT_FAILURE;
        }   

        /* 数字変換 */
        int num = atoi(argv[1]);

        /* あほチェック */
        if(num == 0) {
                printf("usage: 0以上の数字を入力してください\n");
                return EXIT_FAILURE;

        } else {
                if(num % 3 == 0){
                        printf("aho!!\n");
                } else if( is3aho(num)) {
                        printf("aho!!\n");
                }

        }   
        return EXIT_SUCCESS;
}

動き

[root@cent6 c]# gcc -o 3aho 3aho.c 
[root@cent6 c]# ./3aho 13
aho!!
[root@cent6 c]# ./3aho 3
aho!!
[root@cent6 c]# ./3aho 1
[root@cent6 c]# ./3aho 1993
aho!!
[root@cent6 c]# ./3aho 3333
aho!!
[root@cent6 c]# ./3aho 1 32
usage: 3aho [数字]
[root@cent6 c]# ./3aho
usage: 3aho [数字]

ツイッター見て、fizzbuzzできないプログラマがいる!
とかいう話が久しぶりに出ていたので、fizzbuzz考えて、なべあつ出来なかったらどうしよう…と思い、帰宅中に頭で考えてみたからコードに落としてみた。
本当は文字列使わないで数字だけで判定したいけど…
ん?どうやるんだ…orz
じゃんけんプログラムとか研修でやったなぁ…