#define _CRT_SECURE_NO_WARNING
#include<stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include<windows.h>
void four()
{
int i, num, num_1, num_2, num_3, T_d = 0, ab_1, ab_2;//随机的三个数和题目数
char ab[4] = { '+','-','*','/' };
printf_s("请输入1——300之间的题目数量\n");
scanf_s("%d", &T_d);
printf_s("你一共出了%d道题目\n", T_d);
srand((int)time(0)); 刷新随机数
for (i = 0; i < T_d; i++)
{
while (1) { num_1 = rand(); if (num_1 >= 1 && num_1 < 100)break; }
while (1) { num_2 = rand(); if (num_2 >= 1 && num_2 < 100)break; }
while (1) { num_3 = rand(); if (num_3 >= 1 && num_3 < 100)break; }
while (1) { ab_1 = rand(); if (ab_1 >= 0 && ab_1 <= 3)break; }
while (1) { ab_2 = rand(); if (ab_2 >= 0 && ab_2 <= 3)break; }
if (ab[ab_1] == '+')
{
num = num_1 + num_2;
if (ab[ab_2] == '-')
{
num_1 = num + num_3;
printf_s("(%d%c%d)%c%d=\n", num_1, ab[ab_1], num_2,ab[ab_2], num_3);
}
if (ab[ab_2] == '/')
{
num = num*num_3;
num_1 = num - num_2;
printf_s("(%d%c%d)%c%d=\n", num_1, ab[ab_1], num_2, ab[ab_2], num_3);
}
if (ab[ab_2] == '+' || ab[ab_2] == '*')
printf_s("(%d%c%d)%c%d=\n", num_1, ab[ab_1], num_2, ab[ab_2], num_3);
}
if (ab[ab_2] == '-')
{
num = num_1;
if (ab[ab_2] == '-')
{
num_1 = num_1 + num_3 + num_2;
printf_s("(%d%c%d)%c%d=\n", num_1, ab[ab_1], num_2, ab[ab_2], num_3);
}
if (ab[ab_2] == '/')
{
num = num*num_3;
num_1 = num + num_2;
printf_s("(%d%c%d)%c%d=\n", num_1, ab[ab_1], num_2, ab[ab_2], num_3);
}
if (ab[ab_2] == '+' || ab[ab_2] == '*')
printf_s("(%d%c%d)%c%d=\n", num_1, ab[ab_1], num_2, ab[ab_2], num_3);
}
if (ab[ab_1] == '*')
{
num = num_1 * num_2;
if (ab[ab_2] == '-')
{
num_1 = num_1 + num_3;
printf_s("(%d%c%d)%c%d=\n", num_1, ab[ab_1], num_2, ab[ab_2], num_3);
}
if (ab[ab_2] == '/')
{
num_1 = num*num_3 / num_2;
printf_s("(%d%c%d)%c%d=\n", num_1, ab[ab_1], num_2, ab[ab_2], num_3);
}
if (ab[ab_2] == '+' || ab[ab_2] == '*')
printf_s("(%d%c%d)%c%d=\n", num_1, ab[ab_1], num_2, ab[ab_2], num_3);
}
if (ab[ab_1] == '/')
{
num_1 = num_2*num_1;
num = num_1;
if (ab[ab_2] == '-')
{
printf_s("(%d%c%d)%c%d=\n", num_1, ab[ab_1], num_2, ab[ab_2], num_3);
}
if (ab[ab_2] == '/')
{
num_1 = num*num_3;
printf_s("(%d%c%d)%c%d=\n", num_1, ab[ab_1], num_2, ab[ab_2], num_3);
}
if (ab[ab_2] == '+' || ab[ab_2] == '*')
printf_s("(%d%c%d)%c%d=\n", num_1, ab[ab_1], num_2, ab[ab_2], num_3);
}
}
}
int main()
{
four();
return 0;
}
参考了室友王越的代码。
首先先解释一波这个写的代码,一开始呢我与王怡飞同学讨论了半天该用c语言还是使用c++语言来进行编码,因为他比较喜欢用c++我比较喜欢用c,但最终还是决定使用了c++来编写此项目。
先是定义各个变量,再创建了一个包含加减乘除四则运算的数组,之后有一条关键语句
srand((int)time(0)); 来刷新随机数,具体的利用for while的循环来产生算式,
然后使用if语句来确保结果都为整数,最后创建主函数来调用四则运算方法来实现功能。
结对编程的收获以及心得:
结对编程应该是团队合作的一种思想,可以让我们再面对困难的时候不是一个人独自承担,而是由两人共同承担,比如我们在编程过程中所遇到代码中该如何刷出随机数这一困难是,我们共同面对,
并成功解决了这一问题。在编译的时候,两个人共同编程也更加容易发现错误,有些时候一个人编程时一些小错误容易被忽视,而结对编程时,你的搭档会及时的指出这些小错误,从而在编译过程中
更加舒畅与顺利。当然在一开始,也会遇到一些协商不够,默契程度不太够的问题,比如,编程语言的选择。
对结对编程的看法:
刚开始两个人肯定会有些分歧,但磨合之后,两人默契程度上来后,就感觉编代码的效率会变高。