![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Deison |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 26.9.2003 Репутация: нет Всего: нет |
Дана марица A[N][M], определить колличество особых элементов, элемент особый если он больше суммы всех остальных в своем столбце
#include <iostream.h> #include <conio.h> void main() { int **A,i,j,N,M,k,sum,os; clrscr(); cout<<"Введите размерность матрицы A[N][M]"; cin>>N>>M; cout<<"Введите "<<N*M<<" элементов массива"; A=new int*[N]; for(i=0;i<N;i++) A[i]=new int[M]; for(i=0;i<N;i++) for(j=0;j<M;j++) cin>>A[i][j]; cout<<"Контрольный вывод массива \n"; for(i=0;i<N;i++) { cout<<"\n"; for(j=0;j<M;j++) cout<<A[i][j]<<" "; } os=0; for(j=0;j<M;j++) for(i=0;i<N;i++) { sum=0; for(k=0;k<N;k++) if(k!=i) sum+=A[k][j]; if(A[i][j]>sum) os++; } cout<<"\n\n В этой матрице "<<os<<" особых элементов "; getch(); for(i=0;i<N;i++) delete A[i]; delete []A; } Подскажите пожалуйста как она работает? Если sum-сумма os- особый элемент что такое К? |
|||
|
||||
RAN |
|
||||
Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 709 Регистрация: 14.3.2003 Где: Щёлково Моск.обл. Репутация: 5 Всего: 6 |
IMHO, плохой алгоритм.
Во-первых, не надо каждый раз пересчитывать сумму элементов в столбце. Достаточно это сделать один раз. А потом сравнивать A[i][j] > sum - A[i][j] Во-вторых, надо всегда делать математическое обоснование алгоритма. Не надо быть Пифагором, чтоб понять, что такой элемент может быть лишь один в столбце и он будет самым большим элементом. Таким образом надо пройтись по элементам столбца, посчитав их сумму и найдя наибольший, а потом сравнить больше ли этот максимальный элемент половины суммы. Если да, то он - особый элемент.
Пожалуйста:
|
||||
|
|||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |