提交都是WA,可本地运行没有问题,帮忙指点一下
查看原帖
提交都是WA,可本地运行没有问题,帮忙指点一下
604432
kkhll楼主2023/1/6 18:03

P1957 口算练习题

#include<stdio.h>
#include<math.h>
#include<string.h>
char str[1000][1000],a[1000],b[1000];
int c[1000][1000];
int main() {
 int i,j,k,n,q,m,l,p,x,y;
 scanf("%d\n",&n);
 for(i=1; i<=n; i++)
 {
  //scanf("%c",&str[i][0]);
  //if(str[i][0]<='9')
  for(j=0;j<11;j++)
  {
   scanf("%c",&str[i][j]);
   if(str[i][j]=='\n')
   break;
  }
 }
 for(i=1; i<=n; i++) {
  q=0;
  l=0;
  k=0;
  while(str[i-q][0]<='9'&&str[i-q][0]>='0') {
   q++;
  }
  m=strlen(str[i]);
  if(q==0) {
   for(j=2; j<m; j++) {
    if(str[i][j]==' ')
     break;
    a[l]=str[i][j];
    l++;
   }
   for(j+=1; j<m; j++) {
    if(str[i][j]=='\n')
     break;
    b[k]=str[i][j];
    k++;
   }
  } else {
   for(j=0; j<m; j++) {
    if(str[i][j]==' ')
     break;
    a[l]=str[i][j];
    l++;
   }
   for(j+=1; j<m&&str[i][j]!='\n'; j++) {
    b[k]=str[i][j];
    k++;
   }
  }
  p=1;
  for(j=l-1;j>=0;j--)
  {
   c[i][0]+=(a[j]-'0')*p;
   p*=10;
  }
  p=1;
  for(j=k-1;j>=0;j--)
  {
   c[i][1]+=(b[j]-'0')*p;
   p*=10;
  }
  if(str[i-q][0]=='a')
  {
   c[i][2]=c[i][0]+c[i][1];
   x=c[i][2];
   c[i][3]=l+k+2;
   while(x>0)
   {
    x/=10;
    c[i][3]+=1;
   }
   printf("%d+%d=%d\n%d\n",c[i][0],c[i][1],c[i][2],c[i][3]);
  }
  if(str[i-q][0]=='b')
  {
   c[i][2]=c[i][0]-c[i][1];
   if(c[i][2]>=0)
   c[i][3]=l+k+2;
   else
   c[i][3]=l+k+3;
   x=abs(c[i][2]);
   while(x>0)
   {
    x/=10;
    c[i][3]+=1;
   }
   printf("%d-%d=%d\n%d\n",c[i][0],c[i][1],c[i][2],c[i][3]);
  }
  if(str[i-q][0]=='c')
  {
   c[i][2]=c[i][0]*c[i][1];
   x=abs(c[i][2]);
   c[i][3]=l+k+2;
   while(x>0)
   {
    x/=10;
    c[i][3]+=1;
   }
   printf("%d*%d=%d\n%d\n",c[i][0],c[i][1],c[i][2],c[i][3]);
  }
 }
 return 0;
}
2023/1/6 18:03
加载中...