Cant figure where my code is going wrong. giving 11 instead of 10 for 2nd sample input. .
#include <stdio.h>
int main(void) {
int i,small,pos,pos2,t,a[10],small2,flag,num;
scanf("%d",&t);
while(t–)
{ small=10;pos=10;pos2=10;small2=10;flag=0;num=0;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=9;i>=0;i–)
{
if(a[i]<=small)
{ small=a[i];
pos=i; }
}
if(pos==0)
{
for(i=1;i<10;i++)
{
if(a[i]==small)
{
pos2=i;
flag=1;
break;
}
}
if(flag==0)
{
for(i=9;i>=1;i–)
{
if(a[i]<=small2)
{pos2=i;
small2=a[i];
}
}
small++;
num=pos2*(10^small);
}
}
if((pos!=0)||(flag==1))
{
if(flag==1)
pos=pos2;
small++;
while(small!=0)
{
num=num*10+pos;
small–;
}
}
printf("%d\n",num);
}
return 0;
}