Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2022, 10:57   #1
Дмитрий 555555
 
Регистрация: 13.04.2022
Сообщений: 4
По умолчанию Дана квадратная матрица порядка M. Обнулить элементы матрицы, лежащие одновременно ниже главной диагонали (включая эту диагональ) и ниже побочной диагонали (также включая эту диагональ). Усл

Дана квадратная матрица порядка M. Обнулить элементы матрицы, лежащие одновременно ниже главной диагонали (включая эту диагональ) и ниже побочной диагонали (также включая эту диагональ). Условный оператор не использовать.
Помогите решить на c++. Уже месяц не могу решить. Выводит не те элементы, которые нужны
Дмитрий 555555 вне форума Ответить с цитированием
Старый 13.04.2022, 12:36   #2
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

Вы серьезно месяц не могли на бумажке несколько матриц набросать и прикинуть индексы? А потом написать, что-то типа
Код:
for (i = M/2; i < M; ++i)
  for(j = M-i-1; j <= i; ++j)
ForenLi вне форума Ответить с цитированием
Старый 17.04.2022, 18:30   #3
Дмитрий 555555
 
Регистрация: 13.04.2022
Сообщений: 4
По умолчанию

Напишите полную программу пожалуйста
Дмитрий 555555 вне форума Ответить с цитированием
Старый 19.04.2022, 10:04   #4
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Так это и есть вся программа. Вам что еще надо? В шаблон проекта сами вставите, а матрицу задать это уже дело не хитрое. Только по моему по заданию надо вот так:
Код:
for (i = M/2; i < M; ++i)
  for(j = M-i-1; j < M; ++j)
    mat[i, j] = mat[M-i-1, j] = 0;
В прошлом варианте получаются часики песочные, а надо все ниже обеих диагоналей.
macomics вне форума Ответить с цитированием
Старый 19.04.2022, 10:54   #5
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

Цитата:
Сообщение от macomics Посмотреть сообщение
Только по моему по заданию надо вот так:
не надо так, у вас до конца строки всегда будет нулиться

Цитата:
Сообщение от macomics Посмотреть сообщение
В прошлом варианте получаются часики песочные
не получаются, там нижняя половина как и по заданию нада

Цитата:
Сообщение от macomics Посмотреть сообщение
а надо все ниже обеих диагоналей.
именно
ForenLi вне форума Ответить с цитированием
Старый 20.04.2022, 18:30   #6
Дмитрий 555555
 
Регистрация: 13.04.2022
Сообщений: 4
По умолчанию

Помогите с выврдом пожалуйста
Обнуляет не все

#include <iostream>
using namespace std;
int main()
{
setlocale(0, "rus");
int m;
cout « "m";
cin » m;
int** a = new int* [m];
for (int i = 0; i < m; i++)
{
a[i] = new int[m];
}
for (int i = 0; i < m; i++)
{
for (int j = 0; j < m; j++)
{
a[i][j] = rand() % 5 + 1;
cout « a[i][j] « " ";
}
cout « endl;
}
cout « endl;
cout « " вывод ";
cout « endl;
for (int i = m / 2; i < m; ++i)
{
for (int j = m - i - 1; j <= i; ++j)
a[i][j] = 0;
}
for (int i = 0; i < m; i++) {
for (int j = 0; j < m; j++)
cout « a[i][j] « " ";
cout « endl;
}

}
Дмитрий 555555 вне форума Ответить с цитированием
Старый 20.04.2022, 18:31   #7
Дмитрий 555555
 
Регистрация: 13.04.2022
Сообщений: 4
По умолчанию

ForenLi, помогите с выводом пожалуйста.
Обнуляет не все

#include <iostream>
using namespace std;
int main()
{
setlocale(0, "rus");
int m;
cout « "m";
cin » m;
int** a = new int* [m];
for (int i = 0; i < m; i++)
{
a[i] = new int[m];
}
for (int i = 0; i < m; i++)
{
for (int j = 0; j < m; j++)
{
a[i][j] = rand() % 5 + 1;
cout « a[i][j] « " ";
}
cout « endl;
}
cout « endl;
cout « " вывод ";
cout « endl;
for (int i = m / 2; i < m; ++i)
{
for (int j = m - i - 1; j <= i; ++j)
a[i][j] = 0;
}
for (int i = 0; i < m; i++) {
for (int j = 0; j < m; j++)
cout « a[i][j] « " ";
cout « endl;
}

}
Дмитрий 555555 вне форума Ответить с цитированием
Старый 20.04.2022, 19:12   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Используйте для оформления кода кнопочку CODE. А после копирования кода из мессенджеров, неплохо бы заменять « на << и » на >>. И что именно вам не нравится в обнулении?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 20.04.2022, 19:33   #9
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 953
По умолчанию

Код:
N = 7: Dim a(N, N): Randomize Timer 'matr.bas
For i = 1 To N: For j = 1 To N: a(i, j) = Int(Rnd * 8 + 1)
Print a(i, j);: Next: Print: Next: q = -1: s = N

For i = N To N / 2 Step -1: q = q + 1: s = s - 1: For j = q To s
    Print i, j, q, s: a(Int(i), 1 + Int(j)) = 0
Next: Next
For i = 1 To N: For j = 1 To N: Print a(i, j);: Next: Print: Next
online qb64 qbasic _https://boxgm.itch.io/qbjs
и на другие япы переводим сами

смысл: переменные q & s регулируют начало и длину нулей
и сами главные диагонали выключаются переменными

программы все пишите проверяемыми в онлайн компиляторы


оптимизированная программа автора для размера 7
ведь ввод вручную онлайн не работает
и ввод вручную к пользователям неуважение
хотя бы делайте закомментированные варианты переменная или ввод:

Код:
#include <iostream>
int main()
{setlocale(0, "rus");
int m=7;
int** a = new int* [7];
for (int i = 0; i < 7; i++)
{ a[i] = new int[7];}
for (int i = 0; i < 7; i++)
{ for (int j = 0; j < 7; j++)
{ a[i][j] = rand() % 5 + 1;
std::cout << a[i][j] << " ";
}
std::cout << "" << std::endl;
}
std::cout << "" << std::endl;
for (int i = 7 / 2; i < 7; ++i)
{ for (int j = 7 - i - 1; j <= i; ++j)
a[i][j] = 0;
}
for (int i = 0; i < 7; i++) {
for (int j = 0; j < 7; j++)
std::cout << a[i][j] << " ";
std::cout << "" << std::endl;
}}
_https://rextester.com/STZE32238

Код:
4 2 3 1 4 1 2 
3 5 2 3 3 1 5 
4 2 1 2 3 2 2 
4 3 5 3 1 3 4 
3 1 5 3 3 4 5 
3 4 2 2 3 5 4 
2 5 5 3 4 5 1 

4 2 3 1 4 1 2 
3 5 2 3 3 1 5 
4 2 1 2 3 2 2 
4 3 5 0 1 3 4 
3 1 0 0 0 4 5 
3 0 0 0 0 0 4 
0 0 0 0 0 0 0
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую

Последний раз редактировалось сфинкс; 21.04.2022 в 17:55.
сфинкс вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C++] Дана квадратная целочисленная матрица порядка M. Уменьшить в два раза все элементы, лежащие ниже главной диагонали lunarBeast Помощь студентам 1 15.05.2018 19:34
Для заданной матрицы порядка n, определите диагональ, параллельную главной диагонали матрицы, сумма элем. которой имеет макс. зна Vladys95 Паскаль, Turbo Pascal, PascalABC.NET 11 03.12.2015 19:38
Задачка в паскале: Матрицы. Дана квадратная матрица поряка M x N. Заменить нулями элементы, лежащие одновременно ниже главной... Юлия14563 Паскаль, Turbo Pascal, PascalABC.NET 1 20.05.2014 15:51
Работа с матрицами на С++. Найти сумму элементов, расположенных выше главной диагонали, включая элементы главной диагонали. Анастасия225 Помощь студентам 5 20.01.2014 20:47
Дана квадратная матрица А порядка М. Найти сумму элементов каждой её диагонали, параллельной побочной(начиная с одноэлементной диа Richik123 Паскаль, Turbo Pascal, PascalABC.NET 1 31.05.2012 16:15