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

练习1-1

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

int main() {
    srand(time(0));
    int anw = rand() % 7;
    printf("您的签运是:");
    switch (anw) {
    case 0:printf("大吉"); break;
    case 1:printf("吉"); break;
    case 2:printf("小吉"); break;
    case 3:printf("吉"); break;
    case 4:printf("末吉"); break;
    case 5:printf("凶"); break;
    case 6:printf("大凶"); break;
    }
}

练习1-2

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

int main() {
    srand(time(0));
    int anw = rand() %10;
    printf("您的签运是:");
    switch (anw) {
    case 0:
    case 1:printf("大吉"); break;
    case 2:
    case 3:printf("吉"); break;
    case 4:
    case 5:
    case 6:printf("小吉"); break;
    case 7:printf("末吉"); break;
    case 8:printf("凶"); break;
    case 9: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() % 1998-999;    /* 生成-999~999的随机数 */

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

    stage = 0;
    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 = 0; i < stage; i++)
        printf(" %2d : %4d %+4d\n", i + 1, num[i], num[i] - ans);

    return 0;
}

练习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 = 3*(rand() %333)+3;    /* 生成3~999之间3的倍数的随机数 */

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

    stage = 0;
    do {
        printf("还剩%d次机会。是多少呢:", MAX_STAGE - stage);
        scanf("%d", &no);
        while(no % 3 != 0) {
            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 = 0; i < stage; i++)
        printf(" %2d : %4d %+4d\n", i + 1, num[i], num[i] - ans);

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

#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 = 3*(rand() %333)+3;    /* 生成3~999之间3的倍数的随机数 */

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

    stage = 0;
    do {
        printf("还剩%d次机会。是多少呢:", MAX_STAGE - stage);
        scanf("%d", &no);
        if (no % 3 != 0) {
            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 = 0; i < stage; i++)
        printf(" %2d : %4d %+4d\n", i + 1, num[i], num[i] - ans);

    return 0;
}

练习1-5

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

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

int main(void)
{
    int i;
    int stage;                /* 已输入的次数 */
    int no;
    int cnt=0;/* 读取的值 */
    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 > 50)
    {
        x /= 2;
        cnt++; }
    cnt += 3;
    int num[128];        /* 读取的值的历史记录 */

    stage = 0;
    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 = 0; i < stage; i++)
        printf(" %2d : %4d %+4d\n", i + 1, num[i], num[i] - ans);

    return 0;
}

练习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 == 1){
        ans = rand() % 8 + 1;
        d = 9;
             }
    if (choice == 2) {
        ans = rand() % 98 + 1;
        d = 99;
    }
    if (choice == 3) {
        ans = rand() % 998 + 1;
        d = 999;
    }
    if (choice == 4) {
        ans = rand() % 9998 + 1;
        d = 999;
    }
    printf("请猜一个1~%d的整数。\n\n",d);

    stage = 0;
    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 = 0; i < stage; i++)
        printf(" %2d : %4d %+4d\n", i + 1, num[i], num[i] - ans);

    return 0;
}

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

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

    stage = 0;
    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 = 0; i < stage; i++) {
        printf(" %2d : %4d  ", i + 1, num[i]);
        if(num[i] - ans==0)
            printf("%4d\n", num[i] - ans);
        else {
            printf("%+4d\n", num[i] - ans);
        }
    }
    return 0;
}

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

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

    stage = 0;
    i = 0;
    for(i=0;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 = 0; i < stage; i++) {
        printf(" %2d : %4d  ", i + 1, num[i]);
        if(num[i] - ans==0)
            printf("%4d\n", num[i] - ans);
        else {
            printf("%+4d\n", num[i] - ans);
        }
    }
    return 0;
}

原文地址:https://www.cnblogs.com/nightswatch-candle/p/11973620.html

时间: 2024-07-29 01:48:51

明解C语言 中级篇 第一章答案的相关文章

明解C语言 入门篇 第二章答案

练习2-1 1 #include <stdio.h> 2 3 int main() { 4 int x; 5 int y; 6 int percent; 7 8 puts("请输入两个整数"); 9 printf("整数x:"); 10 scanf("%d", &x); 11 printf("整数y:"); 12 scanf("%d", &y); 13 percent = (x

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

练习4-1 /* 珠玑妙算 */ #include <time.h> #include <ctype.h> #include <stdio.h> #include <stdlib.h> #include <string.h> /*--- 生成4个不同数字的组合并存入数组x ---*/ void make4digits(int x[]) { int i, j, val; for (i = 0; i < 4; i++) { do { val =

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

练习3-1 /* 猜拳游戏(其四:分割函数/显示成绩)*/ #include <time.h> #include <stdio.h> #include <stdlib.h> int human; /* 玩家的手势 */ int comp; /* 计算机的手势 */ int win_no; /* 胜利次数 */ int lose_no; /* 失败次数 */ int draw_no; /* 平局次数 */ char* hd[] = { "石头", &q

明解C语言 入门篇 第七章答案

练习7-1 #include <stdio.h> int main() { int n; printf("%d\t%d\t%d\n", sizeof 1,sizeof(unsigned)-1,sizeof n+2 ); //此行显示结果为 4 3 6 因为1的字节就是为4,而-1的字节也是4再减去-1所以显示为3,最后是n+2为6 printf("%d\t%d\t%d\n", sizeof +1, sizeof(double) - 1, sizeof(n

明解C语言 入门篇 第十二章答案

练习12-1 /* 用表示学生的结构体来显示高尾的信息 */ #include <stdio.h> #define NAME_LEN 64 /* 姓名的字符数 */ /*=== 表示学生的结构体 ===*/ struct student { char name[NAME_LEN]; /* 姓名 */ int height; /* 身高 */ float weight; /* 体重 */ long schols; /* 奖学金 */ }; int main(void) { struct stud

明解C语言,练习13-3,从文件中读入个人信息,按身高排序后显示

#include <stdio.h> #define NUMBER 6 #define F_PATH "D:\\C_C++\\ec13-3\\hw.dat" typedef struct { char name[20]; int height; float weight; } student; void swap(student *x,student *y) { student tmp = *x; *x = *y; *y = tmp; } void sort(student

明解C语言pdf

下载地址:网盘下载 <明解C语言>图文并茂,示例丰富,设有190段代码和164幅图表,对C语言的基础知识进行了彻底剖析,内容涉及数组.函数.指针.文件操作等.对于C语言语法以及一些难以理解的概念,均以精心绘制的示意图,清晰.通俗地进行讲解. 柴田望洋(Shibata Bouyou) 1963年出生,日本福冈工业大学信息工程学院副教授.在日本IT界家喻户晓,编写了一些列极富影响力的计算机教材和参考书,如<明解C++>.<明解Java>等,本书于2000年荣获日本工学教育协

Java语言程序设计(基础篇)第一章

第一章 计算机.程序和Java概述 1.1引言 什么是程序设计呢? 程序设计就是创建(或者开发)软件,软件也称为程序. 1.2什么是计算机 计算机是存储和处理数据的电子设备,计算机包括硬件(hardware)和软件(software)两部分.

第一部分 基础篇 第一章 走进MongoDB

声明:该文章主要来自<MongoDB实战>一书内容,主要想通过该书学习MongoDB的相应知识,加深理解,故写在自己的博文当中,作为记录在最后的章节中,会有一个自己集合MongoDB数据库应用的JavaEE的web应用. 第一章 走进MongoDB MongoDB是一个高性能.开源.无模式的文档型数据库,是当前NoSQL数据库产品中最热门的一种,它在许多场景下可用于替代关系型数据库或者键/值存储方式,MongoDB使用C++开发,MongoDB的官网是地址是:http://www.mongod