Error message here!

Hide Error message here!

忘记密码?

Error message here!

请输入正确邮箱

Hide Error message here!

密码丢失?请输入您的电子邮件地址。您将收到一个重设密码链接。

Error message here!

返回登录

Close

明解C语言 中级篇 第一章答案

nightswatch-candle 2019-12-02 22:09:00 阅读数:9 评论数:0 点赞数:0 收藏数:0

练习1-1

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

int main() {
    srand(time());
    int anw = rand() % ;
    printf("您的签运是:");
    switch (anw) {
    case :printf("大吉"); break;
    case :printf(""); break;
    case :printf("小吉"); break;
    case :printf(""); break;
    case :printf("末吉"); break;
    case :printf(""); break;
    case :printf("大凶"); break;
    }
}

练习1-2

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

int main() {
    srand(time());
    int anw = rand() %;
    printf("您的签运是:");
    switch (anw) {
    case :
    case :printf("大吉"); break;
    case :
    case :printf(""); break;
    case :
    case :
    case :printf("小吉"); break;
    case :printf("末吉"); break;
    case :printf(""); break;
    case :printf("大凶"); break;
    }
}

练习1-3

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

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

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

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

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

    printf("请猜一个-999~999的整数。\n\n");

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

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

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

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

    return ;
}

练习1-4

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

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

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

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

    srand(time(NULL));        /* 设定随机数的种子 */
    ans = *(rand() %)+;    /* 生成3~999之间3的倍数的随机数 */

    printf("请猜一个3~999的而且是3的倍数整数。\n\n");

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

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

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

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

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

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

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

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

    srand(time(NULL));        /* 设定随机数的种子 */
    ans = *(rand() %)+;    /* 生成3~999之间3的倍数的随机数 */

    printf("请猜一个3~999的而且是3的倍数整数。\n\n");

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

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

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

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

    return ;
}

练习1-5

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

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


int main(void)
{
    int i;
    int stage;                /* 已输入的次数 */
    int no;
    int cnt=;/* 读取的值 */
    int d1, d2, ans;                /* 目标数字 */
    srand(time(NULL));        /* 设定随机数的种子 */
    d1 = rand();
    d2 = rand();
    int max = (d2 > d1) ? d2 : d1;
    int min = (d2 < d1) ? d2 : d1;
    ans = (rand() % (max -min))+min;
    int x = (max - min);
    printf("请猜一个%d~%d的整数\n\n", min, max);
    while (x > )
    {
        x /= ;
        cnt++; }
    cnt += ;
    int num[];        /* 读取的值的历史记录 */

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

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

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

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

    return ;
}

练习1-6

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

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

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

int main(void)
{
    int i;
    int stage;                /* 已输入的次数 */
    int no;                    /* 读取的值 */
    int ans;                /* 目标数字 */
    int num[MAX_STAGE];        /* 读取的值的历史记录 */
    int choice, d;
    srand(time(NULL));
    printf("请选择难度等级(1)1~9 (2)1~99 (3)1~999 (4)1~9999:");
    scanf("%d", &choice);
    if (choice == ){
        ans = rand() %  + ;
        d = ;
             }
    if (choice == ) {
        ans = rand() %  + ;
        d = ;
    }
    if (choice == ) {
        ans = rand() %  + ;
        d = ;
    }
    if (choice == ) {
        ans = rand() %  + ;
        d = ;
    }
    printf("请猜一个1~%d的整数。\n\n",d);

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

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

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

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

    return ;
}

练习1-7

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

#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() % ;    /* 生成0~999的随机数 */

    printf("请猜一个0~999的整数。\n\n");

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

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

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

    puts("\n--- 输入记录 ---");
    for (i = ; i < stage; i++) {
        printf(" %2d : %4d  ", i + , num[i]);
        if(num[i] - ans==)
            printf("%4d\n", num[i] - ans);
        else {
            printf("%+4d\n", num[i] - ans);
        }
    }
    return ;
}

练习1-8

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

#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() % ;    /* 生成0~999的随机数 */

    printf("请猜一个0~999的整数。\n\n");

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

        if (no > ans) {
            printf("\a再小一点。\n");
        }
        if (no < ans){
                printf("\a再大一点。\n");
        }
        if(ans==no){
            break;
        }
} 

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

    puts("\n--- 输入记录 ---");
    for (i = ; i < stage; i++) {
        printf(" %2d : %4d  ", i + , num[i]);
        if(num[i] - ans==)
            printf("%4d\n", num[i] - ans);
        else {
            printf("%+4d\n", num[i] - ans);
        }
    }
    return ;
}

 

版权声明
本文为[nightswatch-candle]所创,转载请带上原文链接,感谢
https://www.cnblogs.com/nightswatch-candle/p/11973620.html