猜数游戏,加入历史输入数据的显示

/* 猜数游戏(其五:显示输入记录)*/

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

#define MAX_STAGE    10        /* 最多可以输入的次数 */

int main(void)
{
    int i;
    int stage;                /* 已输入的次数 */
    int no;                    /* 读取的值 */
    int ans;                /* 目标数字 */
    int num[MAX_STAGE];        /* 读取的值的历史记录 */

    srand(time(NULL));        /* 设定随机数的种子 */
    ans = rand() % 1000;    /* 生成0~999的随机数 */

    printf("请猜一个0~999的整数。

");

    stage = 0;
    do {
        printf("还剩%d次机会。是多少呢:", MAX_STAGE - stage);
        scanf("%d", &no);
        num[stage++] = no;            /* 把读取的值存入数组 */

        if (no > ans)
            printf("a再小一点。
");
        else if (no < ans)
            printf("a再大一点。
");
    } while (no != ans && stage < MAX_STAGE);

    if (no != ans)
        printf("a很遗憾,正确答案是%d。
", ans);
    else {
        printf("回答正确。
");
        printf("您用了%d次猜中了。
", stage);
    }

    puts("
--- 输入记录 ---");
    for (i = 0; i < stage; i++)
        printf(" %2d : %4d %+4d
", i + 1, num[i], num[i] - ans);

    return 0;
}

输入

请猜一个0~999的整数。

还剩10次机会。是多少呢:500
再大一点。
还剩9次机会。是多少呢:800
再小一点。
还剩8次机会。是多少呢:650
再小一点。
还剩7次机会。是多少呢:575
再小一点。
还剩6次机会。是多少呢:535
再小一点。
还剩5次机会。是多少呢:517
再小一点。
还剩4次机会。是多少呢:507
再小一点。
还剩3次机会。是多少呢:503
回答正确。
您用了8次猜中了。

--- 输入记录 ---
  1 :  500   -3
  2 :  800 +297
  3 :  650 +147
  4 :  575  +72
  5 :  535  +32
  6 :  517  +14
  7 :  507   +4
  8 :  503   +0
原文地址:https://www.cnblogs.com/sea-stream/p/11037482.html