为什么测试对了,提交全WA?求个大佬看看!!!
查看原帖
为什么测试对了,提交全WA?求个大佬看看!!!
873140
ssx666楼主2022/11/30 21:49
#include<stdio.h>
#include<ctype.h>
#include<string.h>
int main()
{
	int n,a,b;
	char str[100];
	char s[100];
	char m;
	scanf("%d",&n);
	getchar();//吸收数字后的回车
	while (n--)
	{
		memset(s,0,sizeof(s));//重置为0;
		gets(str);//读入
		if (isalpha(str[0]))//通过第一个字符判断是那种情况
		{
			m=str[0];//存入符号
			switch (str[0])
			{
				case ('a'):
					    sscanf(str,"%*s%d%d",&a,&b);
						sprintf(s,"%d+%d=%d",a,b,a+b);
						puts(s);
						printf("%d",strlen(s));
						break;
				case ('b'):
				        sscanf(str,"%*s%d%d",&a,&b);
						sprintf(s,"%d-%d=%d",a,b,a-b);
						puts(s);
						printf("%d",strlen(s));
						break;
				case ('c'):
				        sscanf(str,"%*s%d%d",&a,&b);
						sprintf(s,"%d*%d=%d",a,b,a*b);
						puts(s);
						printf("%d",strlen(s));
						break;	
			}
		}
		else 
		{
			switch (m)//上一次存入的符号
			{
				case ('a'):
					    sscanf(str,"%d%d",&a,&b);
						sprintf(s,"%d+%d=%d",a,b,a+b);
						puts(s);
						printf("%d",strlen(s));
						break;
				case ('b'):
					    sscanf(str,"%d%d",&a,&b);
						sprintf(s,"%d-%d=%d",a,b,a-b);
						puts(s);
						printf("%d",strlen(s));
						break;
				case ('c'):
					    sscanf(str,"%d%d",&a,&b);
						sprintf(s,"%d*%d=%d",a,b,a*b);
						puts(s);
						printf("%d",strlen(s));
						break;
					
			}
			
		}
	}
	return 0;
}
2022/11/30 21:49
加载中...