二柱子四则运算提交版

源代码:

#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]);
        }
    }
}

 

转载于:https://www.cnblogs.com/oliverqueen/p/9919638.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值