diff --git a/typing.c b/typing.c index ea59af6..b681d8b 100644 --- a/typing.c +++ b/typing.c @@ -72,9 +72,10 @@ char line[100]; char answer[100]; - int i, rv, level, dist, sum=0; - time_t start = time(0); - srand(start); + int i, rv, level, dist; + int sum=0; + float total_len1=0; + float total_len2=0; puts("---タイピングゲーム---"); puts("難易度を選んでください"); @@ -87,6 +88,9 @@ level = atoi(line); printf("\n"); + + time_t start = time(0); + srand(start); switch(level) { case 1: @@ -96,12 +100,15 @@ printf("第%d問: %s\n", i+1, lv1[rv]); scanf("%s", answer); printf("\n"); + total_len1 += strlen(lv1[rv]); + total_len2 += strlen(answer); dist = eddist_iter(lv1[rv], answer, strlen(lv1[rv]), strlen(answer)); sum += dist; break; } } - printf("編集距離: %d\n", sum); + printf("正答率: %.2f %%\n", (total_len2 - sum) / total_len1 * 100); + printf("時間: %d 秒\n", time(0)-start); break; case 2: for (i=0; i<5; i++) { @@ -110,12 +117,15 @@ printf("第%d問: %s\n", i+1, lv2[rv]); scanf("%s", answer); printf("\n"); + total_len1 += strlen(lv2[rv]); + total_len2 += strlen(answer); dist = eddist_iter(lv2[rv], answer, strlen(lv2[rv]), strlen(answer)); sum += dist; break; } } - printf("編集距離: %d\n", sum); + printf("正答率: %.2f %%\n", (total_len2 - sum) / total_len1 * 100); + printf("時間: %d 秒\n", time(0)-start); break; case 3: for (i=0; i<3; i++) { @@ -124,14 +134,18 @@ printf("第%d問: %s\n", i+1, lv3[rv]); scanf("%s", answer); printf("\n"); + total_len1 += strlen(lv3[rv]); + total_len2 += strlen(answer); dist = eddist_iter(lv3[rv], answer, strlen(lv3[rv]), strlen(answer)); sum += dist; break; } } - printf("編集距離: %d\n", sum); + printf("正答率: %.2f %%\n", (total_len2 - sum) / total_len1 * 100); + printf("時間: %d 秒\n", time(0)-start); break; + default: + printf("1〜3の数字をで入力してください\n"); } - printf("時間は %d 秒でした!\n", time(0)-start); return 0; }