C言語プログラミング 9/4

記事
IT・テクノロジー
今日は久々にrand関数を使って遊んでみました。
1から入力した整数までの範囲でランダムに値を返すものです。

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

int main(void){
    int ret;
    char buf[256];
    int value;
    int i = 0;

    srand( (unsigned int)time(NULL) ); //時間を種にする

    while(1){
        i++;
        printf("random number from 1 to :");
        gets(buf);
        ret = sscanf(buf, "%d", &value);
        if( ret == 0 ){ //ret:変換出来た数
            printf("fin...\n");
            break; //数字以外で終了
        }
        else if( 1 > value ){ //負数は認めない
            printf("invalid value.\n");
        }
        else{
            printf("%2d: %d\n", i, ( 1 + rand() % value ) ) ;
        }
    }
    return 0;
}

これでWIN5とかロト何とかとか買ったら当たりますかねえ・・・(絶対当たらない

(2021.9.5追記)
「gets関数はあまり使わない方が・・・」との声もありそうなので一応。
あくまで遊びのプログラムですし、流石に255桁以上の数字は打たないだろうということで今回は使いました。
気になる場合は
fgets(buf, sizeof(buf), stdin); 
あたりで置き換えるかすればいいと思います。


サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す