#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <conio.h>
#include <math.h>
int cnt1, cnt2;
int gcd(int a, int b)
{
if (b == 0)
return a;
return gcd(b, a % b);
}
int main(int argc, char const *argv[])
{
int n = 0;
for (int i = 0; i < strlen(argv[2]); i++) {
n = n * 10 + (argv[2][i] - '0');
}
printf("%d\n", n);
srand(time(NULL));
char input[100], ans1[100], ans2[100];
while (n--) {
memset(input, 0, sizeof(input));
memset(ans1, 0, sizeof(ans1));
memset(ans2, 0, sizeof(ans2));
fflush(stdin);
printf("输入q退出,按其他任意键继续\n");
char ch = getch();
if (ch == 'q') {
break;
}
int a, b, c, d, op;
a = rand() % 100;
while (1) {
b = rand() % 100;
if (b != 0) {
break;
}
}
c = rand() % 100;
while (1) {
d = rand() % 100;
if (d != 0) {
break;
}
}
op = rand() % 4;
int tmp = abs(gcd(a, b));
a /= tmp;
b /= tmp;
tmp = abs(gcd(c, d));
c /= tmp;
d /= tmp;
printf("%d", a);
if (b != 1) {
printf("/%d", b);
}
if (op == 0) printf(" + ");
else if (op == 1) printf(" - ");
else if (op == 2) printf(" * ");
else printf(" / ");
printf("%d", c);
if (d != 1) {
printf("/%d", d);
}
printf(" = ");
int m, n;
if(op == 0){
m = a * d + b * c;
n = b * d;
}
else if (op == 1) {
m = a * d - b * c;
n = b * d ;
}
else if (op == 2) {
m = a * c;
n = b * d;
}
else {
m = a * d;
n = b * c;
}
tmp = abs(gcd(m, n));
m /= tmp;
n /= tmp;
sprintf(ans1, "%d", m);
if (n != 1) {
sprintf(ans2, "/%d", n);
}
strcat(ans1, ans2);
gets(input);
puts(ans1);
if (strcmp(ans1, input) == 0) {
printf("right\n");
cnt1++;
} else {
printf("wrong\n");
cnt2++;
}
}
int zql;
zql = (100 * cnt1) / (cnt1 + cnt2);
printf("共答了%d道题,答对%d道题,答错%d道题,正确率为%d%%。\n", cnt1 + cnt2, cnt1, cnt2, zql);
return 0;
}
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <conio.h>
#include <math.h>
int cnt1, cnt2;
int gcd(int a, int b)
{
if (b == 0)
return a;
return gcd(b, a % b);
}
int main(int argc, char const *argv[])
{
int n = 0;
for (int i = 0; i < strlen(argv[2]); i++) {
n = n * 10 + (argv[2][i] - '0');
}
printf("%d\n", n);
srand(time(NULL));
char input[100], ans1[100], ans2[100];
while (n--) {
memset(input, 0, sizeof(input));
memset(ans1, 0, sizeof(ans1));
memset(ans2, 0, sizeof(ans2));
fflush(stdin);
printf("输入q退出,按其他任意键继续\n");
char ch = getch();
if (ch == 'q') {
break;
}
int a, b, c, d, op;
a = rand() % 100;
while (1) {
b = rand() % 100;
if (b != 0) {
break;
}
}
c = rand() % 100;
while (1) {
d = rand() % 100;
if (d != 0) {
break;
}
}
op = rand() % 4;
int tmp = abs(gcd(a, b));
a /= tmp;
b /= tmp;
tmp = abs(gcd(c, d));
c /= tmp;
d /= tmp;
printf("%d", a);
if (b != 1) {
printf("/%d", b);
}
if (op == 0) printf(" + ");
else if (op == 1) printf(" - ");
else if (op == 2) printf(" * ");
else printf(" / ");
printf("%d", c);
if (d != 1) {
printf("/%d", d);
}
printf(" = ");
int m, n;
if(op == 0){
m = a * d + b * c;
n = b * d;
}
else if (op == 1) {
m = a * d - b * c;
n = b * d ;
}
else if (op == 2) {
m = a * c;
n = b * d;
}
else {
m = a * d;
n = b * c;
}
tmp = abs(gcd(m, n));
m /= tmp;
n /= tmp;
sprintf(ans1, "%d", m);
if (n != 1) {
sprintf(ans2, "/%d", n);
}
strcat(ans1, ans2);
gets(input);
puts(ans1);
if (strcmp(ans1, input) == 0) {
printf("right\n");
cnt1++;
} else {
printf("wrong\n");
cnt2++;
}
}
int zql;
zql = (100 * cnt1) / (cnt1 + cnt2);
printf("共答了%d道题,答对%d道题,答错%d道题,正确率为%d%%。\n", cnt1 + cnt2, cnt1, cnt2, zql);
return 0;
}