@Marat_2021

Как обнулить элементы матрицы, лежащие одновременно выше главной диагонали и выше побочной диагонали, не используя условный оператор if?

#include <locale>
#include <iostream>
using namespace std;
int main()
{
	setlocale(LC_ALL, "rus");
	double a[100][100];
	int i, j, n;
	cout << "Введите размер матрицы: " << endl;
	cin >> n;
	cout << "Матрицы: " << endl;
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < n; j++)
		{
			a[i][j] = 0 + rand() % 10;
			cout << a[i][j] << " ";
		}
		cout << endl;
	}
	cout << "Измененная матрица: " << endl;
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < n; j++)
		{
			while (i == j && i + j == n - 1)
				a[i][j] = 0;
				cout << a[i][j] << " ";
			
		}
		cout << endl;
	}
	return 0;
}


Через while не получилось, помогите плиз.
  • Вопрос задан
  • 34 просмотра
Пригласить эксперта
Ответы на вопрос 1
maaGames
@maaGames
Погроммирую программы
что-то типа такого:
a[i][j] *= ( i < j) ? 1.0 : 0.0;
т.е. вместо if использовать тернарный оператор. Умножение на 0 даст ноль. Формально, требование выполняется. Практичесого смысла в этом нет.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы