Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Slowpok
4 / 4 / 4
Регистрация: 03.01.2012
Сообщений: 112
1

Заменить диагонали заданной матрицы нулями

09.06.2012, 19:20. Просмотров 984. Ответов 10
Метки нет (Все метки)

Помогите реализовать

Если в заданной матрице А(N,N) есть хотя бы один элемент, больший ста, то элементы обеих диагоналей заменить нулями.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2012, 19:20
Ответы с готовыми решениями:

Заменить элементы главной диагонали матрицы нулями и найти максимальный элемент ниже побочной диагонали
Есть пример для решения другой задачи(она находит суму всех элементов каждой...

Заменить нулями элементы матрицы, лежащие ниже побочной диагонали
Помогите, пожалуйста написать код. Дана квадратная матрица порядка M. Заменить...

Заменить все элементы главной диагонали заданной матрицы значением первого элемента
Дан двумерный статический массив действительных чисел размером 6х5. ...

Матрица, заменить диагонали - нулями
Пожалуйста, помогите с программой на Си (C), буду очень благодарен за помощь....

Матрица. Заменить нулями все ее элементы, расположенные на главной диагонали и выше ее
2. Дана действительная квадратная матрица порядка 6. Заменить нулями все ее...

10
cactus09
Чайник
69 / 69 / 9
Регистрация: 15.02.2012
Сообщений: 475
09.06.2012, 20:16 2
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
  int mass[5][5];
  
  for(int i=0;i<5;i++){
   for(int j=0;j<5;j++){
   cout<<"Vvedite element #"<<i<<":"<<j<<" ";
   cin>>mass[i][j];
   }
  }
  
  for(int i=0;i<5;i++){
   for(int j=0;j<5;j++){
 
    if(mass[i][j]>100){
      for(int i1=0,j2=0;i1<5;i1++,j2++){
        mass[i1][j2]=0;
      }
      for(int i1=4,j2=0;i1>=0;i1--,j2++){
        mass[i1][j2]=0;
      }
     break;
    }
   }
  }
  
  cout<<"----------Matrica----------"<<endl;
  
  for(int i=0;i<5;i++){
   for(int j=0;j<5;j++){
   cout<<mass[i][j]<<" ";
   }
   cout<<endl;
  }
  
  system("PAUSE");  
  return 0;
}
1
Jtalk
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
09.06.2012, 20:17 3
Чем помочь-то?
0
cactus09
Чайник
69 / 69 / 9
Регистрация: 15.02.2012
Сообщений: 475
09.06.2012, 20:24 4
Jtalk,

Не по теме:

Slowpok не слупок, это ты слоупок:)

0
Jtalk
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
09.06.2012, 20:38 5

Не по теме:

Странное дело: не появлялся тут меньше полугода, а тут уже и фриланс в C++ переехал, и школьников полные автобусы понавезли.



Использовать using namespace std — моветон.
Выделять по int на индексы для [0..4] — моветон.
Замену можно сделать в один цикл.
break выбросит только из первого цикла.
Задача была сформулирована для квадратных матриц N*N, а не 5*5.
Ну и "vvedite" и "matrica", конечно, вне конкуренции.
1
Slowpok
4 / 4 / 4
Регистрация: 03.01.2012
Сообщений: 112
09.06.2012, 20:46  [ТС] 6
Цитата Сообщение от Jtalk Посмотреть сообщение
фриланс в C++
таки не сложная задача, школьного уровня

Цитата Сообщение от Jtalk Посмотреть сообщение
моветон
Борда на то и борда, мб кто то подредактирует. моветон в карательных сообщениях скорее проявляется

Цитата Сообщение от Jtalk Посмотреть сообщение
Задача была сформулирована для квадратных матриц N*N
а тут таки да
0
Jtalk
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
09.06.2012, 20:51 7
Цитата Сообщение от Slowpok Посмотреть сообщение
таки не сложная задача, школьного уровня


Борда на то и борда, мб кто то подредактирует. моветон в карательных сообщениях скорее проявляется


а тут таки да
Я прекрасно знаю, какого уровня эта задача.
Чтобы "подредактировать" нужен код. А вы кода не предоставили, вы сказали "вот задача, сделайте-ка мне красиво". Если честно, не понимаю, что двигает местных помогать таким как вы: спортивного интереса в ворочании массивов нет никакого, денежного профита тоже, альтруизм в чистом виде.
Выложите свой код, и я с радостью подскажу вам, где вы ошиблись и почему у вас не работает. А писать каждому школьнику, ленящемуся ввести "замена элемента матрицы C++" в гугле, реализацию я не хочу.
0
cactus09
Чайник
69 / 69 / 9
Регистрация: 15.02.2012
Сообщений: 475
09.06.2012, 21:07 8
Jtalk,
Цитата Сообщение от cactus09 Посмотреть сообщение
Slowpok не слупок, это ты слоупок
Цитата Сообщение от Slowpok Посмотреть сообщение
Сообщение от Jtalk Посмотреть сообщение
моветон
прошу прошения если в чем-то обидил вас, - не по злобе душевной,по недоумию


Цитата Сообщение от Jtalk Посмотреть сообщение
Если честно, не понимаю, что двигает местных помогать таким как вы: спортивного интереса в ворочании массивов нет никакого, денежного профита тоже, альтруизм в чистом виде.
Кого вы ожидали увидеть в разделе "Форум С++ для начинающих"? Гуру и Профи, ну тогда вам в другой раздел, тут новички (как вы вырезались - школьники)- просто для кого-то это крик о помощи, а для кого-то решение задачек - маленькая практика.

Не по теме:

Прошу не рассматривать мое сообщение как оскорбление :)

0
Slowpok
4 / 4 / 4
Регистрация: 03.01.2012
Сообщений: 112
09.06.2012, 21:13  [ТС] 9
создал тему, что бы было от чего оттолкнуться, "красиво" не просил

Выложите свой код, и я с радостью подскажу вам, где вы ошиблись и почему у вас не работает.
постараюсь
0
Jtalk
95 / 81 / 3
Регистрация: 13.05.2011
Сообщений: 279
09.06.2012, 21:20 10
Цитата Сообщение от cactus09 Посмотреть сообщение
прошу прошения если в чем-то обидил вас, - не по злобе душевной,по недоумию
Просто постарайтесь не обзывать незнакомых людей.

Раз вы тут отвечаете, видимо, вы хотите заниматься программированием? Тогда эти задачки вам не помогут. Хотите практику — напишите эту задачу, например, с использованием boost uBLAS. Там есть итераторы для матриц, можно попробовать обойти их с std::transform. Или boost foreach. Вот это для вас, может, будет задачкой. А написать два цикла — это не практика, это так, баловство.
1
Troll_Face
603 / 403 / 8
Регистрация: 26.04.2012
Сообщений: 2,070
09.06.2012, 21:22 11
для замены главной диагонали на нуль:
C++
1
2
3
4
char j=1
for (char i=1, i<=N, i++, j++)
mass[i][j]=0
//char для экономии памяти
1
09.06.2012, 21:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2012, 21:22

Дано матрицу А размером 6х5. Заменить в матрице элементы главной диагонали нулями
Дано матрицу А размером 6х5. Заменить в матрице элементы главной диагонали...

Дана квадратная матрица. Заменить нулями все ее элементы, расположенные на главной диагонали и выше ее
Дана квадратная матрица порядка N. Заменить нулями все ее элементы,...

Массивы:многомерный и одномерный (заменить нулями все отрицательные числа выше главной диагонали)
Вот массив номер 1 (многомерный) тут задача была заменить нулями все...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru