二柱子四则运算提交版

源代码:

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
#define OP_MIN 0
#define OP_MAX 3
#define OP_VALUE_MIN 1
#define OP_VALUE_MAX 99

char op_str[4] = {'+', '-', '*', '/'};
unsigned int rand_interval(int max)
{    
    
    return rand() % max;
}

unsigned int rand_num(int min, int max) {
    if (min >= max) {
        return -1;
    }
    if (min == 0) {
        return rand_interval(max);
    }else {
        return rand_interval(max - min) + min;
    }
}
void main()
{
    int standard_lv[20], standard_rv[20];
    char standard_op[20];
    int standard_ans[20];
    int user_ans[20];
    srand(time(NULL));
    int i;
    for (i = 0; i < 20; ++i) {
        int op_idx = rand_num(OP_MIN, OP_MAX);
        int lv = rand_num(OP_VALUE_MIN, OP_VALUE_MAX);
        int rv = rand_num(OP_VALUE_MIN, OP_VALUE_MAX);
        printf("%d %c %d = ", lv, op_str[op_idx], rv);
        standard_lv[i] = lv, standard_rv[i] = rv, standard_op[i] = op_str[op_idx];
        switch (op_str[op_idx]){
            case '+': standard_ans[i] = lv + rv; break;
            case '-': standard_ans[i] = lv - rv; break;
            case '*': standard_ans[i] = lv * rv; break;
            case '/': standard_ans[i] = lv / rv; break;
        }
        scanf("%d", user_ans +i);
        printf("\n");
    }

    for (i = 0; i < 20; ++i) {
        printf("question %d is %s\n", i, (standard_ans[i]==user_ans[i]?"yes":"no"));
    }
    printf("=================================\n");
    for (i = 0; i < 20; ++i) {
        if (standard_ans[i] != user_ans[i]) {
            printf("%d %c %d = %d\n", standard_lv[i], standard_op[i], standard_rv[i], standard_ans[i]);
        }
    }
}

 

posted @ 2018-11-06 23:22  企鹅搜索克里飘  阅读(101)  评论(0编辑  收藏  举报