it gives run time error.
Code: Select all
#include<iostream>
using namespace std;
#include<math.h>
int main()
{
char h1[4],h2[4],t[1];
char con[16][5]={"0000","0001","0010","0011","0100","0101","0110","0111","1000","1001","1010","1011","1100","1101","1110","1111"};
int val[16]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},d1,d2,N,i,j,k,l1,l2;
scanf("%d",&N);
for (i=0;i<N;i++)
{
d1=0,d2=0;
scanf("%s%s%s",&h1,&t,&h2);
printf("0");
for (j=3;j>strlen(h1);j--)
printf("%s",con[0]);
l1=strlen(h1);
for (k=0;k<l1;k++,j--)
{
if (isdigit(h1[k]))
{
printf("%s",con[h1[k]-48]);
d1+=(int)pow(16,j-1)*val[h1[k]-48];
}
else
{
printf("%s",con[h1[k]-55]);
d1+=(int)pow(16,j-1)*val[h1[k]-55];
}
}
printf(" %c ",t[0]=='+'?'+':'-');
printf("0");
for (j=3;j>strlen(h2);j--)
printf("%s",con[0]);
l2=strlen(h2);
for (k=0;k<l2;k++,j--)
{
if (isdigit(h2[k]))
{
printf("%s",con[h2[k]-48]);
d2+=(int)pow(16,j-1)*val[h2[k]-48];
}
else
{
printf("%s",con[h2[k]-55]);
d2+=(int)pow(16,j-1)*val[h2[k]-55];
}
}
printf(" = %d\n",t[0]=='+'?d1+d2:d1-d2);
}
}