![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 28.05.2013
Сообщений: 3
|
![]()
Доброго времени дня! Очень большая прозьба помочь с задачей по C++.
Задание: В матрице (6,6) найти максимальный из элементов, стоящих выше побочной диагонали и заменить его на 0. Сам я смог написать (не без помощи интернета конечно же) только программу, которая ищит максимум во всей матрице. Я перепробовал все что знал, чтобы посчитать максимум выше побочной, но никак. Помогите пожалуйста дописать программу или как то по другому (советом например). Зарание спасибо! #include <iostream> #include <math.h> #include <conio.h> #include <stdio.h> #include <time.h> #include <stdlib.h> using namespace std; int main() {setlocale(0,""); double **a,*p,h; int n,m=6,i,j,k; cout << "Находим максимальный элемент матрицы"<< endl; cout << "--------------------------------------"<< endl; n=m; a=new double *[n]; for(i=0;i<n;i++) a[i]=new double[m]; for(i=0;i<n;i++) for(j=0;j<m;j++) a[i][j]=rand()%1000; for(i=0;i<n;i++) { for(j=0;j<m;j++) cout<<a[i][j]<<" | "; cout<<endl; } double l=fabs(a[0][0]); int s=0,t=0; for(i=0;i<n;i++) for(j=0;j<m;j++) if(fabs(a[i][j])>l) { l=fabs(a[i][j]); t=i; s=j; } cout <<"Максимальный эллемент = "; cout <<l<<endl; cout<<" "<<endl; for(i=0;i<n;i++) delete [] a[i]; delete [] a; } программная среда Code::Blocks 10.05 |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
![]() Код:
Во-первых, в Вашем случае m=n (собственно, m можно вообще повсюду заменить на n) - понятие "побочной диагонали" определено только для квадратной матрицы. Во-вторых, условие "элемент (i,j) находится выше побочной диагонали" можно формально записать - нарисуйте матрицу и посмотрите! - как (i+j)<(n-1). Поэтому простейший вариант - добавить во (внутренний) цикл, перед сравнением, условие Код:
Но есть вариант чуть умнее - если переписать это условие, оставив в левой части неравнства j, получится ограничение на j, которое можно подставить вместо имеющегося j<n. |
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 28.05.2013
Сообщений: 3
|
![]()
Спасибо огромное, буду пробовать! ))
|
![]() |
![]() |
![]() |
#4 |
Новичок
Джуниор
Регистрация: 28.05.2013
Сообщений: 3
|
![]()
ну вот!!! получилось. Ищит максимум выше побочной!! Спасибо еще раз. Осталось заменить )
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа на Pascal в Lazarus и программа для одномерного массива целых чисел | Yegorka | Lazarus, Free Pascal, CodeTyphon | 13 | 20.12.2012 18:02 |
Программа как программа. вопрос | leonidsm | Общие вопросы C/C++ | 5 | 02.10.2012 21:30 |
Программа с применением записей и программа с применение множеств | smert99 | Помощь студентам | 0 | 16.06.2011 23:14 |
Программа открыается если есть другая программа. | bookkc | Паскаль, Turbo Pascal, PascalABC.NET | 12 | 14.10.2009 20:09 |