求助
查看原帖
求助
1543216
YuuAnn楼主2024/12/18 16:41

得分是六十分,第七个没有过,
测试点数据如下
输入:
4
a 64 46
275 125
c 11 99
b 46 64
输出: 64+46=110
9
275+125=400
11
1199=1089
10
46-64=-18
9
(没错就是给的样例)
我自己测的是数据符合题目要求,但格式不正确。不知道我的编译器哪里出问题了。
我的编译器输出下面的形式(我直接粘贴的,我不知道怎么插入图片): 4
a 64 46
64+46=110
9
275 125
115+125=240
11
c 11 99
1199=1089
10
b 46 64
46-64=-18
9
代码如下:

#include<stdio.h>
#include<string.h>
int size(int);
int main()
{
	int n,i,j;
	char sign,store;
	scanf("%d",&n);
	int arr[n][2];
	for(i=0;i<n;i++){
		sign=getchar();
		sign=getchar();
		scanf("%d %d",&arr[i][0],&arr[i][1]);
		if(sign>'c'||sign<'a'){
		arr[i][0]=size(arr[i][0])*10*(sign-'0')+arr[i][0];
		sign=store;
		}//判断是否是两个还是三个数据 
		if(sign=='a')
		printf("%d+%d=%d\n",arr[i][0],arr[i][1],arr[i][0]+arr[i][1]);
		else if(sign=='b')
		printf("%d-%d=%d\n",arr[i][0],arr[i][1],arr[i][0]-arr[i][1]);
		else
		printf("%d*%d=%d\n",arr[i][0],arr[i][1],arr[i][0]*arr[i][1]);
		if(sign=='a')
		printf("%d\n",size(arr[i][0])+size(arr[i][1])+2+size(arr[i][0]+arr[i][1]));
		else if(sign=='b')
		printf("%d\n",size(arr[i][0])+size(arr[i][1])+2+size(arr[i][0]-arr[i][1]));
		else
		printf("%d\n",size(arr[i][0])+size(arr[i][1])+2+size(arr[i][0]*arr[i][1]));	
		store = sign;
	}
	return 0;
}
	int size(int a){
		int index=1;
		if(a<0)
		index++,a=-a;
		while((a-10)>=0){
		index++;
		a=a/10;
		}//判断数字的位数 
		return index;
	}
2024/12/18 16:41
加载中...