四则运算
| 这个作业属于哪个课程 | <https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19> ||----------------------- |------------------------------|
| 这个作业要求在哪里 | <https://edu.cnblogs.com/campus/ahgc/AHPU-SE-19/homework/11376> |
| 这个作业的目标 | <实验四则运算> |
| 学号 | <3190704140> |
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<windows.h>
#include<string.h>
#define OPERATOR 4
//获取随机数
int random(double start, double end)
{
return (int)(start + (end - start)*rand() / (RAND_MAX + 1.0));
}
//整数列式
void equation() {
int num1;
int num2;
int result;
int answer;
char button;
int right=0;
float accuracy;
int i, n;
printf("请输入要生成的式子数:");
scanf("%d", &n);
printf("请按1-4键选择题目\n1:加法\n2:减法\n3:乘法\n4:除法:");//选择要进行的运算
scanf("%d", &button);
for (i = 0; i < n; i++) {
srand((unsigned)time(NULL));
num1 = random(0, 20);
num2 = random(1, 20);
switch (button)
{
case 1: result = num1 + num2;
printf("%d+%d=\n", num1, num2); break;
case 2: result = num1 - num2;
printf("%d-%d=\n", num1, num2); break;
case 3: result = num1*num2;
printf("%d*%d=\n", num1, num2); break;
case 4: num1 = num1*num2;
result = num1 / num2;
printf("%d÷%d=\n", num1, num2);
break;
}
//printf("%d%c%d=\n", num1, oper, num2);
printf("请输入你的答案:");
scanf("%d", &answer);
if (result==answer) {
printf("恭喜你答对了\n\n");
right++;
}
else {
printf("对不起答错了\n");
printf("正确答案为:%d\n\n", result);
}
}
accuracy = ((float)right /(float) n)*100;
printf("正确率为百分之%1.2f\n", accuracy);
}
//真分数列式
void fraction() {
int num1,num2,num3,num4;
int a, b;
int answer1, answer2;
float result;
float answer;
char button;
int right = 0;
float accuracy;
int i, n;
printf("请输入要生成的式子数:");
scanf("%d", &n);
printf("请按1-4键选择题目\n1:加法\n2:减法\n3:乘法\n4:除法:");
scanf("%d", &button);
for (i = 0; i < n; i++) {
srand((unsigned)time(NULL));
num1 = random(0, 20);
num2 = random(1, 20);
num3 = random(0, 20);
num4 = random(1, 20);
switch (button)
{
case 1:
a = num1*num4+num3*num2;
b = num2*num4;
result = (float)a / (float)b;
printf("%d/%d+%d/%d=\n", num1, num2, num3, num4); break;
case 2:
a = num1*num4 - num3*num2;
b = num2*num4;
result = (float)a / (float)b;
printf("%d/%d-%d/%d=\n", num1, num2, num3, num4); break;
case 3:
a = num1*num3;
b = num2*num4;
result = (float)a / (float)b;
printf("%d/%d*%d/%d=\n", num1, num2,num3, num4); break;
case 4:
a = num1*num4;
b = num2*num3;
result =(float) a /(float) b;
printf("%d/%d÷%d/%d=\n", num1, num2, num3, num4);
break;
}
printf("请输入你的答案:\n");
scanf("%d", &answer1);
printf("/\n");
scanf("%d", &answer2);//判断所输入答案的正确性
answer = (float)answer1 / (float)answer2;
if (result==answer) {
printf("恭喜你答对了\n\n");
right++;
}
else {
printf("对不起答错了\n");
printf("正确答案为:%d/%d\n\n", a,b);
}
}
accuracy = ((float)right / (float)n) * 100;
printf("正确率为百分之%1.2f\n", accuracy);
}
//主函数
void main() {
int choose;
printf("输入1生成整数算式,其他生成分式算式:");
scanf("%d", &choose);
if (choose == 1) {
equation();
}
else {
fraction();
}
}
#include<stdlib.h>
#include<time.h>
#include<windows.h>
#include<string.h>
#define OPERATOR 4
//获取随机数
int random(double start, double end)
{
return (int)(start + (end - start)*rand() / (RAND_MAX + 1.0));
}
//整数列式
void equation() {
int num1;
int num2;
int result;
int answer;
char button;
int right=0;
float accuracy;
int i, n;
printf("请输入要生成的式子数:");
scanf("%d", &n);
printf("请按1-4键选择题目\n1:加法\n2:减法\n3:乘法\n4:除法:");//选择要进行的运算
scanf("%d", &button);
for (i = 0; i < n; i++) {
srand((unsigned)time(NULL));
num1 = random(0, 20);
num2 = random(1, 20);
switch (button)
{
case 1: result = num1 + num2;
printf("%d+%d=\n", num1, num2); break;
case 2: result = num1 - num2;
printf("%d-%d=\n", num1, num2); break;
case 3: result = num1*num2;
printf("%d*%d=\n", num1, num2); break;
case 4: num1 = num1*num2;
result = num1 / num2;
printf("%d÷%d=\n", num1, num2);
break;
}
//printf("%d%c%d=\n", num1, oper, num2);
printf("请输入你的答案:");
scanf("%d", &answer);
if (result==answer) {
printf("恭喜你答对了\n\n");
right++;
}
else {
printf("对不起答错了\n");
printf("正确答案为:%d\n\n", result);
}
}
accuracy = ((float)right /(float) n)*100;
printf("正确率为百分之%1.2f\n", accuracy);
}
//真分数列式
void fraction() {
int num1,num2,num3,num4;
int a, b;
int answer1, answer2;
float result;
float answer;
char button;
int right = 0;
float accuracy;
int i, n;
printf("请输入要生成的式子数:");
scanf("%d", &n);
printf("请按1-4键选择题目\n1:加法\n2:减法\n3:乘法\n4:除法:");
scanf("%d", &button);
for (i = 0; i < n; i++) {
srand((unsigned)time(NULL));
num1 = random(0, 20);
num2 = random(1, 20);
num3 = random(0, 20);
num4 = random(1, 20);
switch (button)
{
case 1:
a = num1*num4+num3*num2;
b = num2*num4;
result = (float)a / (float)b;
printf("%d/%d+%d/%d=\n", num1, num2, num3, num4); break;
case 2:
a = num1*num4 - num3*num2;
b = num2*num4;
result = (float)a / (float)b;
printf("%d/%d-%d/%d=\n", num1, num2, num3, num4); break;
case 3:
a = num1*num3;
b = num2*num4;
result = (float)a / (float)b;
printf("%d/%d*%d/%d=\n", num1, num2,num3, num4); break;
case 4:
a = num1*num4;
b = num2*num3;
result =(float) a /(float) b;
printf("%d/%d÷%d/%d=\n", num1, num2, num3, num4);
break;
}
printf("请输入你的答案:\n");
scanf("%d", &answer1);
printf("/\n");
scanf("%d", &answer2);//判断所输入答案的正确性
answer = (float)answer1 / (float)answer2;
if (result==answer) {
printf("恭喜你答对了\n\n");
right++;
}
else {
printf("对不起答错了\n");
printf("正确答案为:%d/%d\n\n", a,b);
}
}
accuracy = ((float)right / (float)n) * 100;
printf("正确率为百分之%1.2f\n", accuracy);
}
//主函数
void main() {
int choose;
printf("输入1生成整数算式,其他生成分式算式:");
scanf("%d", &choose);
if (choose == 1) {
equation();
}
else {
fraction();
}
}