提交记录 #363
提交时间:2024-12-02 21:27:14
语言:c
状态:Unaccepted
编译情况:编译成功
code.c: In function ‘main’:
code.c:109:16: warning: ‘sig’ may be used uninitialized in this function [-Wmaybe-uninitialized]
109 | else if(sig=='-')
| ^
固定测试点#1:
固定测试点#2:
固定测试点#3:
附加测试点暂不可用
H20【选做▪大学】高精度加减法
#include<stdio.h>
#include<string.h>
char num1[502],num2[502];int ans[100][502]={0},J,K;
int plus(int j)
{
int i;
for(i=501;num1[i]!='\0'||num2[i]!='\0';i--)
{
ans[j][i]=ans[j][i]+num1[i]-48+num2[i]-48;
if(ans[j][i]>=10)
{
ans[j][i-1]=ans[j][i-1]+1;ans[j][i]=ans[j][i]-10;
}
}
return i+1;
}
int minus(int j)
{
int i;
for(i=501;num1[i]!=48||num2[i]!=48;i--)
{
ans[j][i]=ans[j][i]+num1[i]-num2[i];
if(ans[j][i]<0)
{
ans[j][i-1]=ans[j][i-1]-1;ans[j][i]=ans[j][i]+10;
}
}
return i+1;
}
int minusanti(int j)
{
int i;
for(i=501;num1[i]!=48||num2[i]!=48;i--)
{
ans[j][i]=ans[j][i]+num2[i]-num1[i];
if(ans[j][i]<0)
{
ans[j][i-1]=ans[j][i-1]-1;ans[j][i]=ans[j][i]+10;
}
}
return i-1;
}
int max(int x,int y)
{
if(x>y)
{
return x;
}
else
{
return y;
}
}
int main()
{
char sig;int n,i,j,k,d;
for(j=0;j<502;j++)
{
num1[j]='0';
}
for(j=0;j<502;j++)
{
num2[j]='0';
}
scanf("%d\n",&n);
for(i=0;i<n;i++)
{
for(j=0;j<502;j++)
{
scanf("%c",&num1[j]);
if(num1[j]=='+'||num1[j]=='-')
{
sig=num1[j];num1[j]='0';j=j-1;break;
}
}
for(k=0;k<502;k++)
{
scanf("%c",&num2[k]);
if(num2[k]=='\n')
{
num2[k]='0';k=k-1;break;
}
}
J=j;K=k;//printf("J=%d,K=%d\n",J,K);printf("max=%d\n",max(J,K));
d=501-J;
for(j=501;j>=d;j--)
{
num1[j]=num1[j-d];
}
for(;j>=0;j--)
{
num1[j]='0';
}
d=501-K;
for(k=501;k>=d;k--)
{
num2[k]=num2[k-d];
}
for(;k>=0;k--)
{
num2[k]='0';
}
if(sig=='+')
{
//printf("%c\n",sig);
plus(i);
}
else if(sig=='-')
{
if(J>K)
{
minus(i);
}
else if(J<K)
{
minusanti(i);ans[i][0]=-1;
}
else
{
for(k=500-max(J,K);k<502;k++)
{
if(num1[k]>num2[k])
{
minus(i);
}
else if(num1[k]<num2[k])
{
minusanti(i);ans[i][0]=-1;
}
}
}
}
}
for(i=0;i<n;i++)
{
if(ans[i][0]==-1)
{
printf("-");
}
for(j=1;j<502;j++)
{
if(ans[i][j]!=0||j==501)
{
for(;j<502;j++)
{
printf("%d",ans[i][j]);
}
}
}
printf("\n");
}
return 0;
}