
Другие языки программирования и технологии
Помогите, пожалуйста, с задачей C++
Только начал в кружке проходить поганые массивы, честно, ни черта не понятно, помогите пж кодом


От наших индусских друзей
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;
}
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;
}
Desi Boy
Спасибо
print "Не найдено"
строки и столбцы имеют хотя бы один общий элемент,
наличие в нем 0 или 1 противоречат условию поиска.
просто нарисуй квадрат 5х5 и проверь карандашом
строки и столбцы имеют хотя бы один общий элемент,
наличие в нем 0 или 1 противоречат условию поиска.
просто нарисуй квадрат 5х5 и проверь карандашом
Desi Boy
Спасибо)
Веришь, такого мозговыедания кроме как в заданиях студентам нигде не встречал
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;
}
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;
}
Desi Boy
Спасибо
Похожие вопросы
- Помогите пожалуйста разобрать задачу по програмированию на C++.
- Програмрование C# .Помогите пожалуйста решить задачу . Бьюсь головой об экран уже ...
- Помогите, пожалуйста, решить задачу в c++!!
- Мальчики! Помогите пожалуйста с задачей на языке программирования C#
- Помогите, пожалуйста, решить задачу на языке C++
- Помогите пожалуйста с задачей на c++
- Помогите пожалуйста решить задачу на C.
- Помогите пожалуйста решить задачу в c++!!
- Помогите, пожалуйста, решить задачу на c++.
- помогите пожалуйста решить задачу по работе компьютера!