想算t次输入的n个数据能组合成多少个能被3整除的数,输入的数长度小于100,为什么程序得出的结果总是错误,请指教
#include <stdio.h>#include <string.h>
const int MAX=10001;
char A[MAX];
int main()
{
int len,sum,t,i,j,a,b,c,n;
scanf("%d",&t);
while(t--)
{
sum=0;
a=0,b=0,c=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%s",A);
len=strlen(A);
for(j=0;j<len;j++)//一个数的余数就是各位数和的余数
{
sum+=(A[j]-48);
}
if(sum%3==1)
{
a++;
}
else
if(sum%3==2)
{
b++;
}
else
if(sum%3==0)
{
c++;
}
}
printf("%d %d %d\n",a,b,c);
printf("%d\n",(a<b)?a:b+c/2);
}
return 0;
}
例如输入
2
5
1
2
3
4
5
时
应输出
2 2 1
2
但输出变成了
2 0 3
1
请指点
[此贴子已经被作者于2018-10-24 22:04编辑过]