我输出的答案都是正确的 放在ACM平台上却说是错误的

#include
int er(int n)
{
int i, t = 1;
for (i = 0; i <n; i++)
t *= 2;
return t;
}
char qing(int n)
{
int b[7], i = 0, c = 0,t;
while (1)
{
b[i] = n % 2;
n /= 2;
if (n == 0)break;
i++;
}
for (i = 0; i < 7; i++)
{
if (b[i] == 1)c = c + er(6-i);
}
return c;
}
int main()
{
int i = 0, n, a[100];
while (1)
{
scanf("%d", &a[i]);
if (a[i] == 0)break;
i++;
}
n = i;
for (i = 0; i < n; i++)
printf("%c", qing(a[i]));
}

输入n个字符串 统计出现某个字符串是另一个的真子串的组数

ACM平台一般都有格式规范的,你得按照他的规范来,不仅仅是答案正确;另外你的算法只实现了判断一次的功能,人家可能是让你循环判断。