記憶力トレーニングのプログラムを作成しました。
アドバイスを参考に作り直しましたがうまくいきません。
どこが、間違っていますでしょうか?
・やりたいこと
記憶すべき数字を12に固定して数字を入力します。
(入力) => (結果)
12 => 正解です
012 => 正解です
0012 => 正解です
現在上記の結果が出てしまいます
下記のように出力したいです。
(入力) => (結果)
12 => 正解です
012 => 不正解です
0012 => 不正解です
よろしくお願い致します。
c
1/* 記憶力トレーニング(4桁) */ 2 3#include <time.h> 4#include <stdio.h> 5#include <stdlib.h> 6#include <string.h> 7 8#define MAX_STAGE 10 /*ステージ数 */ 9 10/* x秒経過するまで待つ */ 11int sleep(unsigned long x) 12{ 13 clock_t c1 = clock(),c2; 14 do 15 { 16 /* エラー処理 */ 17 if((c2 = clock()) == (clock_t)-1) 18 { 19 return 0; 20 } 21 } 22 while(1000.0 * (c2 -c1) / CLOCKS_PER_SEC < x); 23 { 24 return 1; 25 } 26} 27 28int main(void) 29{ 30 int stage; 31 int success = 0; /* 正解数 */ 32 clock_t start,end; /* 開始時刻・終了時刻 */ 33 int num; /* 読み込んだ数字 */ 34 int no; 35 char str1[10]; 36 char str2[10]; 37 38 /*乱数を設定*/ 39 srand(time(NULL)); 40 printf("4桁の数値を記憶して下さい。\n"); 41 42 start = clock(); 43 for(stage = 0; stage < MAX_STAGE; stage++) 44 { 45 /* 読み込んだ数字 */ 46 no = 12; //rand() % 9000 + 1000 ; /* 記憶する数字 */ 47 snprintf(str1, sizeof(str1), "%d", no); 48 printf("%s",str1); 49 fflush(stdout); 50 /* 問題の提示秒数 */ 51 sleep(500); 52 53 printf("\r数値を入力して下さい。\n"); 54 fflush(stdout); 55 scanf("%d", &num); 56 scanf("%*[^\n]"); 57 snprintf(str2, sizeof(str2), "%d", num); 58 59 if( strcmp(str1,str2) == 0) 60 { 61 printf("正解です。\n"); 62 success++; 63 break; 64 } 65 else 66 { 67 printf("不正解です。\n"); 68 } 69 } 70 end = clock(); 71 72 printf("%d回中%d回で成功しました。\n",MAX_STAGE,success); 73 printf("%.1f秒でした。\n",(double)(end - start) / CLOCKS_PER_SEC); 74 75 return 0; 76} 77 78
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/08 07:56