萌新自闭ing
查看原帖
萌新自闭ing
357889
不会取名楼主2020/7/19 23:03

样例可得到正确结果。也测试过其他数据未发现异常,but,没有AC。 萌新日常自闭。

#include<stdio.h>
#include <math.h>
#include<string.h>
int fun(char *p[11],char c2[][11]);

int n,i,j,k,flag=1,count=0;

int main()
{
   	char c[100],ch,ch2;
   	int a=0,b=0,p;
   scanf("%d",&n);getchar();
   for(i=0;i<n;i++)		//n个算式
   {
		flag=0;count=a=b=0; 
   		gets(c);		//获取算式数据
   		switch(c[0])	//判断运算符,非'a''b''c则不改变
   		{
			case 'a':ch='+';flag=1;break;
			case 'b':ch='-';flag=1;break;
			case 'c':ch='*';flag=1;break;
		}
		int flag2=1;			//算出ab的关键(ab为运算数)
   		for(p=0+2*flag;c[p]!='\0';p++)	//p从2*flag开始,可以避免'a'等进入运算
   		{
   			count++;
   			if(c[p]==' ')	{c[p]=ch;flag2=0;}	//将俩个运算数之间的‘ ’改为运算符
   			if(flag2)			//flag2==1是计算算a
   				a=a*10+c[p]-'0';
   			else if(c[p]!=ch)		//flag2==0且不是运算符时计算b
			    b=b*10+c[p]-'0'; 
		}
		switch(ch)				//得到运算结果
   		{
			case '+':j=a+b;break;
			case '-':j=a-b;break;
			case '*':j=a*b;break;
		}
		for(k=j;k!=0;k=k/10)	//
			count++;
		if(j<0)	count++;
		printf("%s=%d\n%d\n",&c[2*flag],j,count+1);	//count+1是因为没算'='
   }
	return 0;
}
2020/7/19 23:03
加载中...