结对编程写的个C随机生成等式

直接上代码:

/**
 * Description: Haaaaaaaa, make some simple arithmetic problems for my sons.
 *              My sons are ........;
 * Author: xxm, leezp, xx
 * Time: 2017.3.26
 */

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

#define QUESTIONNUMBER 30
#define VALUEMAX 99

#define ADD 1
#define SUB 2
#define MUL 3
#define DIV 4
#define METHOD 4

struct Node {
    int operation1;
    int method;
    int operation2;
    int result;
};

char getMethod(int methodCode);
int compare(const void *value1, const void *value2);
int generateExp(int item);

struct Node list[QUESTIONNUMBER];

int main(int argc, char* argv[]) {
    srand(time(0));
    int i = 0;

    for(i = 0; i < QUESTIONNUMBER; i++) {
        generateExp(i);
    }

    //print
    for(i = 0; i < QUESTIONNUMBER; i++) {
        printf("%d. %d %c %d = %d\n", i + 1, list[i].operation1, getMethod(list[i].method), list[i].operation2, list[i].result);
    }

    //test
    int num[5] = {7, 3, 2, 6, 4};
    qsort(num, 5, 4, compare);
    for(i = 0; i < 5; i++) {
        printf("%d ", num[i]);
    }
    printf("\n");

    return 0;
}

char getMethod(int methodCode) {
    char method = '\0';

    switch(methodCode) {
        case ADD:
            method = '+';
            break;
        case SUB:
            method = '-';
            break;
        case MUL:
            method = '*';
            break;
        case DIV:
            method = '/';
            break;
    }

    return method;
}

int compare(const void *value1, const void *value2) {
    return *(int*)value1 - *(int*)value2;
}

int generateExp(int item) {
    list[item].operation1 = rand() % (VALUEMAX + 1);
    list[item].method = rand() % METHOD + 1;
    list[item].operation2 = rand() % (VALUEMAX + 1);
    switch(list[item].method) {
        case ADD:
            list[item].result = list[item].operation1 + list[item].operation2;
            break;
        case SUB:
            list[item].result = list[item].operation1 - list[item].operation2;
            break;
        case MUL:
            list[item].result = list[item].operation1 * list[item].operation2;
            break;
        case DIV:
            list[item].result = list[item].operation1 / list[item].operation2;
            break;
    }
    return 0;
}
//quietly tell you,my sons are xx、xxm

代码运行结果
这里写图片描述

后面那串数字是用C语言库中的快排函数排列的一堆数字,不用管…………

照片太帅!就不发出来了,就发个图片就行了
这里写图片描述

感受

中国的所有IT行业好久能实现的结对编程,一个在旁边玩,一个在旁边写~~………………

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值