/***************************************************************************************************************
S得到一个数,他想知道这个数每一位上的数字的孔数之和。1,2,3,5,7这几个数字是没有孔的,0,4,6,9都有一个孔,8有两个孔。
Input
输入数据的第一行为一个数T表示数据组数。接下来T行,每行输入一个正整数n(1<=n<=1000),表示要求数字孔数之和的数。n不会有前导0。
Output
对于每组数据输出一行一个整数,表示该数的每一位上的数字的孔数之和。
Sample Input
2
42
669
Sample Output
1
3
***************************************************************************************************************/
我最初的代码:
#includeint main()
{
int T,i,n[4];
int ans=0;
scanf("%d",&T);
while(T>0)
{
for(i=0;i<4;i++)
{
scanf("%d",&n[i]);
}
for(i=0;i<4;i++)
{
if(n[i]==0||n[i]==4||n[i]==6||n[i]==9)
{
ans++;
}
else if(n[i]==8)
{
ans+=2;
}
}
printf("输出%d\n",ans);
T--;
}
return 0;
}
我以为我在数字键盘上每输入一个个位数字就会自动生成一个数组元素,所以我每一次输入42,敲下回车后没有任何输出,让我很苦恼。但是实际上,用我的代码生成数组时,是输入后每敲一次回车,形成一次数组,所以当我敲回车的时候,我以为所有数组已经有了元素,实际上,只生成了第一个数组元素。