四则运算进阶版

C语言四则运算并判断正误

Talk is easy, Show you code!

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include "stdio.h"
#include "math.h"
int cal(float x, float y, float z, char c)
{
	int t;
	t = fabs(x * y - z) <= (1e-6);
	switch (c)
	{
	case '+':
		if (x + y == z)
			return 1;
		else
		{
		printf("非常遗憾,你做错了,正确答案是%f\n",x+y);
			return 0;
		}
		break;

	case '-':
		if (x - y == z)
			return 1;
		else
		{
		printf("非常遗憾,你做错了,正确答案是%f\n",x-y);
			return 0;
		}
		break;

	case '*':
		if (x * y == z || (x - (int)x > 0 && t || y - (int)y > 0 && t))

			return 1;
		else
		{
		printf("非常遗憾,你做错了,正确答案是%f\n",x*y);
			return 0;
		}
		break;

	case '/':
		if ((y != 0) && (x / y == z))
			return 1;
		else
		{
		printf("非常遗憾,你做错了,正确答案是%f\n",x/y);
			return 0;
		}
		break;

	default:
		printf("本程序只支持四则运算!\n");
	}

	return 0;
}

int main()
{
	float x, y, z;
	char c, t;
	int i, correct = 0, fault = 0;
	printf("请输入要打分的题目个数\n");
	scanf("%d", &i);
	while (i--)
	{
		printf("请输入一个四则运算表达式,以回车结束\n");
		scanf("%f%c%f%c%f", &x, &c, &y, &t, &z);
		if (cal(x, y, z, c))
			correct++;
		// printf("干得漂亮!你答对了!\n");
		else
			fault++;
		// printf("非常遗憾!你答错了!\n");
	}
	printf
		("打分完毕!\n你总共做对了%d道题目\n做错了%d道题目\n一题10分,总分数是%d分\n",
		 correct, fault, correct * 10);
	printf("程序结束");
	return 0;
}
updatedupdated2020-05-032020-05-03