Hey,Thanks!I corrected that and a few other error too..still getting WA!!
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
char a[110],b[110],c[110],d[110];
void add()
{
int i,j=strlen(a)-1,k=strlen(b)-1,t,r=0,u=0,s=max(strlen(a),strlen(b)),temp,flag;
c[s+1]='\0';
for(i=s;i>=0 && j>=0 && k>=0;i--)
{
t=a[j--]+b[k--]-48;
temp=t-48+u;
if((t-48+u)>9)
{
r=(t-48+u)%10;
u=(t-48+u)/10;
c[i]+=r;
//c[i-1]+=u;
}
else
{
c[i]+=t-48+u;
u=0;
}
if(i==1)
c[0]+=u;
//cout<<i<<" "<<a[j+1]<<" "<<b[k+1]<<" "<<c[i]<<" "<<r<<" "<<u<<" "<<temp<<endl;
}
while(j>=0)
c[i--]+=a[j--]-48;
}
void divide()
{
int k=0,i=0,r=0,t;
while(c[i]==48)
i++;
//cout<<"i t d[k] r\n";
//cout<<c<<endl;
for(;i<strlen(c);i++)
{
if(c[i]==48 && r==0)
{
d[k++]=48;
t=0;
}
else
{
t=(r*10+c[i]-48);
if(t==1 && i==strlen(c)-1)
d[k++]=48;
else
{
if(t<=1 && i<strlen(c)-1)
{
t=c[i]*10+c[++i]-480-48;
//if(k!=0)
d[k++]=48;
}
d[k++]=(t/2+48);
r=t%2;
}
}
//cout<<i<<" "<<t<<" "<<d[k-1]<<" "<<r<<endl;
}
d[k]='\0';
}
void subtract()
{
int d=strlen(a)-1,e=strlen(b)-1,s=max(strlen(a),strlen(b)),temp;
c[s]='\0';
int i;
for(i=s-1;i>=0 && d>=0 && e>=0;i--)
{
if(a[d]<b[e])
{
temp=d;
while(a[--temp]==48)
a[temp]=9+48;
a[temp]=a[temp]-1;
c[i]=a[d--]+10-b[e--]+48;
}
else
c[i]=a[d--]-b[e--]+48;
}
while(d>=0)
c[i--]=a[d--];
}
int main()
{
int l=10;
while(l--)
{
for(int t=0;t<105;t++)
c[t]=d[t]=48;
scanf("%s%s",&a,&b);
if(!strcmp(a,b))
printf("%s\n0\n",a);
else{
add();
divide();
int i=0;
while(d[i]==48)
i++;
while(d[i]!='\0')
printf("%c",d[i++]);
printf("\n");
for(int t=0;t<105;t++)
c[t]=d[t]=48;
subtract();
divide();
i=0;
while(d[i]==48)
i++;
while(d[i]!='\0')
printf("%c",d[i++]);
printf("\n");}
}
return 0;
}