#c
#c
Вопрос:
У меня есть эта матрица размером 3 на 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;
}
}
Ответ №1:
Просто добавьте еще одну переменную count
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;
Не самый красивый код в word, но он выполняет свою работу.
Кстати, как минимум два простых числа, так что
if (Count == 2)
должно быть
if (Count >= 2)
Ответ №2:
Используйте целое число как флаг.
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;
}
Комментарии:
1. Это не решает проблему OP. Сообщение «НЕТ СТРОКИ» будет показано, если есть какая-либо строка, которая не содержит двух простых чисел.