我有这个由3个Matrix[3][3]组成的矩阵。我的任务是显示包含至少两个质数的矩阵的行数,我已经做了这个质数工作,但问题是,我必须显示此消息一旦cout << "No row containing at least two prime numbers" << endl;。由于迭代,如果任何一行不包含两个质数或只有一行包含两个质数,它会向我显示三次/两次。如果没有消息或有消息,我希望消息只显示一次。
质数代码..。
cout << "ROW NUMBER CONTAINING AT LEAST TWO PRIME NUMBERS" << endl;
for (int i = 0; i < 3; i++)
{
Count = 0;
for (int j = 0; j < 3; j++)
{
Prime = 0;
for (int k = 2; k < Matrix[i][j]; k++)
{
if (Matrix[i][j] % k == 0)
{
Prime = 1;
break;
}
}
if (Prime == 0)
{
Count += 1;
}
}
if (Count == 2)
{
cout << "ROW NUMBER " << i + 1 << endl;
}
else
{
cout << "NO ROW CONTAINING AT LEAST TWO PRIME NUMBERS" << endl;
}
}发布于 2020-10-22 11:34:54
使用像标志一样的整数。
int flag = 0;
cout << "ROW NUMBER CONTAINING AT LEAST TWO PRIME NUMBERS" << endl;
for (int i = 0; i < 3; i++)
{
Count = 0;
for (int j = 0; j < 3; j++)
{
Prime = 0;
for (int k = 2; k < Matrix[i][j]; k++)
{
if (Matrix[i][j] % k == 0)
{
Prime = 1;
break;
}
}
if (Prime == 0)
{
Count += 1;
}
}
if (Count == 2)
{
cout << "ROW NUMBER " << i + 1 << endl;
}
else
{
flag++;
}
}
if(flag == 3)
{
cout << "NO ROW CONTAINING AT LEAST TWO PRIME NUMBERS" << endl;
}发布于 2020-10-22 17:27:34
只需添加另一个计数变量
int row_count = 0;
for (int i = 0; i < 3; i++)
{
...
if (Count == 2)
{
cout << "ROW NUMBER " << i + 1 << endl;
row_count += 1;
}
}
if (row_count == 0)
cout << "NO ROW CONTAINING AT LEAST TWO PRIME NUMBERS" << endl;这不是世界上最漂亮的代码,但它可以完成这项工作。
顺便说一句,至少有两个质数,所以
if (Count == 2)应该是
if (Count >= 2)https://stackoverflow.com/questions/64474765
复制相似问题