社区讨论

求助!本地样例是对的,但是洛谷上全RE(C

P1957口算练习题参与者 3已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@lo7ffr4d
此快照首次捕获于
2023/10/27 00:56
2 年前
此快照最后确认于
2023/10/27 00:56
2 年前
查看原帖
C
#include <stdio.h>
#include <string.h>
int lens(int a)
{
	int i = 0;
	for (i = 0; a != 0; a /= 10)
	{
		i++;
	}
	return i;
}
void main()
{
	char op[51], temp[51];
	int i, j, n, c, num[50][3] = { 0 };
	scanf("%d", &n);
	for (i = 0; i < n; i++)
	{
		scanf("%s", &temp);
		if (temp[0] == 'a' || temp[0] == 'b' || temp[0] == 'c')
		{
			op[i] = temp[0];
			scanf("%d %d", &num[i][0], &num[i][1]);
		}
		else
		{
			op[i] = op[i - 1];
			for (j = 0; j < strlen(temp); j++)
			{
				num[i][0] = num[i][0] * 10 + temp[j]-'0';
			}
			scanf("%d", &num[i][1]);
		}
	}
	for (i = 0; i < n; i++)
	{
		c = 0;
		if (op[i] == 'a')
		{
			printf("%d+%d=%d", num[i][0], num[i][1], num[i][0] + num[i][1]);
			printf("\n%d", lens(num[i][0]) + lens(num[i][1]) + lens(num[i][0] + num[i][1]) + 2);
		}
		else if (op[i] == 'b')
		{
			printf("%d-%d=%d", num[i][0], num[i][1], num[i][0] - num[i][1]);
			if (num[i][0] - num[i][1] < 0)
				c++;
			printf("\n%d", lens(num[i][0]) + lens(num[i][1]) + lens(num[i][0] - num[i][1]) + 2 + c);
		}
		else
		{
			printf("%d*%d=%d", num[i][0], num[i][1], num[i][0] * num[i][1]);
			printf("\n%d", lens(num[i][0]) + lens(num[i][1]) + lens(num[i][0] * num[i][1]) + 2);
		}
		if (i != n - 1)
			printf("\n");
	}
}
有佬能指出怎么修改吗TAT

回复

3 条回复,欢迎继续交流。

正在加载回复...