zoukankan      html  css  js  c++  java
  • 第8章 数组

    练习题:

    8.2.1  用rand函数生成[10, 20]之间的随机整数,表达式应该怎么写?

       答案: rand()%11 +10

    8.3.1 补完本节直方图程序的main函数,以可视化的形式打印直方图。例如上一节统计20个随机数的结果是:

      code:

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    #define MAX_LEN 20
    char randomData[MAX_LEN] = {0};
    int data_num[10] = {0};
    int max_num=0x00;
    
    //产生0~9随机数
    void gen_randon(void)
    {
        int i;
        srand(time(NULL));
        for(i=0; i<MAX_LEN; i++){
            randomData[i] = rand() % 10;
        }
    }
    
    //打印产生的随机数数组
    void print_random_data(void)
    {
        int i;
        printf("the random data is:
    ");
        for(i=0x00; i<MAX_LEN; i++){
            if(i!=0 && i%10 ==0)
                printf("
    ");
            printf("%d ", randomData[i]);
        }
        printf("
    ");    
    }
    
    //计算0~9随机数出现的次数
    void count_num(void)
    {
        int i;
        for(i=0; i<MAX_LEN; i++){
            data_num[randomData[i]]++;
        }
        printf("the num count is:
    ");
        for(i=0x00; i<10; i++){
            printf("%d ", data_num[i]);
        }
        printf("
    ");
    }
    
    //求取0~9随机数出现的最大次数
    void get_max_num(void)
    {
        int i;
        for(i=0x00; i<10; i++){
            if(data_num[i] > max_num)
                max_num = data_num[i];
        }
        printf("the max_num = %d
    ", max_num);
    }
    
    //打印0~9随机数的次数显示柱状图
    void print_histogram(void)
    {
        int i, j;
        for(i=0x00; i<10; i++){
            printf("%d ", i);
        }
        printf("
    ");
        for(i=0x01; i<=max_num; i++){
            for(j=0x00; j<10; j++){
                if(data_num[j] >= i){
                    printf("* ");
                }else{
                    printf("  ");
                }
            }
            printf("
    ");
        }
    }
    
    int main(int argc, char *agrv[])
    {
        gen_randon();
        print_random_data();
        count_num();
        get_max_num();
        print_histogram();
    }

      运行结果:

    例子:

    例8.5 剪刀石头布游戏

    code:

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    int main(int argc, char *argv[])
    {
        char gesture[3][10] = {"scissor", "stone", "cloth"};
        int man, computer;
        int ret, result;
        while(1){
            printf("
    game start, please input your gesture:
    (0-scissor, 1-stone, 2-cloth)
    ");
            ret = scanf("%d", &man);
            if(ret==-1 || man > 2 || man<0){
                printf("Invalid input!
    ");
                return 1;
            }
            srand(time(NULL));
            computer = rand() % 3;
            printf("You: %s	computer: %s
    ", gesture[man], gesture[computer]);
            result = (man-computer+4) % 3 - 1;
            if(result > 0)
                printf("You win!
    ");
            else if(result == 0)
                printf("Draw!
    ");
            else
                printf("You lose!
    ");
        }
        return 0;
    }

    结果截图:

  • 相关阅读:
    决定迁移过来,深耕于此。。。
    一篇搞定MongoDB
    一篇搞定vue请求和跨域
    自定义全局组件
    一篇搞定vue-router
    一篇搞定Vuex
    vue系列
    .Vue.js大全
    一篇搞定spring Jpa操作数据库
    自定义admin
  • 原文地址:https://www.cnblogs.com/shanyu20/p/10929639.html
Copyright © 2011-2022 走看看