为什么相同的遍历 ans的值不同
#include <iostream>
using namespace std;
int num[10005],a[15],b[15]={0,1,2,3,5,10,20};
int main()
{
int max1=0;
for(int i=1;i<=6;i++)
{
cin>>a[i];
max1+=a[i]*b[i];
}
num[0]=1;
for(int i=1;i<=6;i++)
{
for(int j=1;j<=a[i];j++)
{
for(int x=max1;x>=0;x--)
{
if(num[x]==1)
{
num[x+b[i]]=1;
}
}
}
}
for(int i=1;i<=max1;i++)
{
cout<<num[i]<<" ";
}
cout<<endl;
int ans1=0,ans2=0,ans3=0;
for(int i=1;i<=max1;i++)
{
if(num[i]==1);
{
ans1++;
}
}
cout<<"Total="<<ans1<<endl;
for(int i=1;i<=max1;i++)
{
if(num[i]==1)
{
ans2++;
}
}
cout<<"Total="<<ans2<<endl;
for(int i=1;i<=max1;i++)
{
if(num[i]==1);
{
ans3++;
}
}
cout<<"Total="<<ans3<<endl;
return 0;
}