int k = 0;
for (int a = 0; a < Ticket.size(); a++)
{
for (int i = 0; i < 6; ++i)
{
for (int j = 0; j < 6; ++j)
{
if (Ticket[a][i] == lotteryRandomNumbers[j])
{
k++;
}
}
}
}
std::cout << "You matched: " << k << " number(s)" << std::endl;
Ticket是一个包含多个大小为6的向量的Vector。 lotteryRandomNumbers是一个包含6个值的数组
此循环检查所有向量中的所有值并检查以查看与数组匹配的内容。因此,如果在所有向量中8个数字匹配,则输出8个匹配。
我想要它做的是输出每个单独的向量中有多少匹配,例如在向量1中,有1个匹配,在向量2中没有匹配,在向量3中有2个匹配等。 / p>
向量的数量可以改变,程序员不知道
答案 0 :(得分:2)
您可以声明匹配的矢量。
vector< int > matches( Ticket.size(), 0 );
for (int a = 0; a < Ticket.size(); a++)
{
for (int i = 0; i < Ticket[a].size(); ++i)
{
for (int j = 0; j < 6; ++j)
{
if (Ticket[a][i] == lotteryRandomNumbers[j])
{
matches[a]++;
}
}
}
}
for ( int i = 0; i < matches.size(); i++ )
cout << matches[i] << " ";
答案 1 :(得分:1)
它就像在外部循环中添加变量一样简单,并计算每个向量得到的匹配数,然后在最后打印出来:
int k = 0;
for (int a = 0; a < Ticket.size(); a++)
{
int count_vec = 0;
for (int i = 0; i < 6; ++i)
{
for (int j = 0; j < 6; ++j)
{
if (Ticket[a][i] == lotteryRandomNumbers[j])
{
count_vec++;
k++;
}
}
}
std::cout << "In vector " << a
<< " there are " << count_vec
<< " matches" << std::endl;
}
std::cout << "You matched: " << k
<< " number(s)" << std::endl;