Другие языки программирования и технологии

Помогите, пожалуйста, с задачей C++

Только начал в кружке проходить поганые массивы, честно, ни черта не понятно, помогите пж кодом
Desi Boy
Desi Boy
801
От наших индусских друзей
https://pastebin.com/m2ZLEZDM //тут лучше будет

#include < iostream >
#include < ctime > //для случайных чисел
using namespace std;

int main()
{
srand(time(NULL));//для случайных чисел
setlocale(LC_ALL, "ru");
const int SIZE = 5;
int arr[SIZE][SIZE];//поганый массив
for (int i = 0; i < SIZE; i++)
{
for (int j = 0; j < SIZE; j++)
{
if (i == j)
arr[i][j] = 0;
else
arr[i][j] = rand() % 2;//случайные числа от 0 до 2(не включительно или же до 1 включительно)
}
}
for (int i = 0; i < SIZE; i++)//цикл для вывода массива
{
for (int j = 0; j < SIZE; j++)
{
cout << arr[i][j] << " ";
}
cout << endl;
}
cout << endl;
bool var = false;
for (int i = 0; i < SIZE; i++)
{
int counter = 0;
for (int j = 0; j < SIZE; j++)
{
if (i != j)
{
if (arr[i][j] == 1)
counter++;
}

}
if (counter == SIZE - 1)
{
cout << "номер строки с 1 = " << i + 1 << endl;
var = true;
}
}
if (!var)
cout << "Нет таких строк " << endl;
var = false;
for (int j = 0; j < SIZE; j++)
{
int counter = 0;
for (int i = 0; i < SIZE; i++)
{
if (i != j)
{
if (arr[i][j] == 0)
counter++;
}

}
if (counter == SIZE - 1)
{
cout << "номер столбца с 0 = " << j + 1 << endl;
var = true;
}
}
if(!var)
cout << "Нет таких столбцов "<<endl;
system("pause");
return 0;
}
Александр Смирнов
Александр Смирнов
919
Лучший ответ
Desi Boy Спасибо
print "Не найдено"
строки и столбцы имеют хотя бы один общий элемент,
наличие в нем 0 или 1 противоречат условию поиска.
просто нарисуй квадрат 5х5 и проверь карандашом
Desi Boy Спасибо)
Веришь, такого мозговыедания кроме как в заданиях студентам нигде не встречал
Данияр Шаканов
Данияр Шаканов
21 700
Desi Boy Так мне 15)0) Это кружок доп. тех. образования
Выше уже есть код, но все же (з. ы. мог накосячить с алгоритмом. поправьте, если что-то не то считает): // https://pastebin.com/T10p5ZGV
vector r, s;
auto Generate() -> auto
{
srand(time(0));
int **arr = new int*[5];
for (int i = 0; i < 5; ++i)
arr[i] = new int[5];

for (int i = 0; i < 5; ++i)
{
for (int j = 0; j < 5; ++j)
arr[i][j] = rand() % 100 < 50? 1 : 0;
arr[i][i] = 0;
}

return arr;
}

auto PrintMatrix(int** arr) ->void
{
for (int i = 0; i < 5; ++i)
{
for (int j = 0; j < 5; ++j)
cout << arr[i][j] << ' ';
cout << endl;
}
}

auto foo(int** arr) -> auto
{
int countr, counts;
for (int i = 0; i < 5; ++i)
{
countr = counts = 0;
for (int j = 0; j < 5; ++j) {
if (arr[i][j] && !arr[i][i]) countr++;
if (!arr[j][i] && arr[i][i]) counts++;
}
if (countr == 4) r.push_back(i);
if (counts == 4) s.push_back(i);
}
}
int main()
{
system("chcp 1251");
system("cls");
int **matrix = Generate();
PrintMatrix(matrix);
foo(matrix);
if (r.empty() && s.empty()) cerr << "Not found\n" ;
else {
cout << "Строки:";copy(r.begin(), r.end(), ostream_iterator(cout, " "));
cout << "\nСтолбцы:"; copy(s.begin(), s.end(), ostream_iterator(cout, " "));
}
return 0;
}
Айдар
Айдар
1 650
Desi Boy Спасибо