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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2011, 18:57   #1
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
Радость Как заменить в массиве (двухмерном) строку, которая имеет наибольший элемент!

Вот задание: дано массив А вещественных чисел размером m на n, где m = 3, n = 5.
Заменить единицами строку, которая содержит самый большой элемент.
Так вот, массив двухмерный я сформирую, или можно сформировать два одномерных, не в это суть! минимальный и максимальный я найду! но как заменить строку единицами? Помогите пожалуйста! Желательно, текстом программы) Я только так понимаю.
gylayko вне форума Ответить с цитированием
Старый 15.11.2011, 19:13   #2
Inv1s
Форумчанин
 
Аватар для Inv1s
 
Регистрация: 06.11.2011
Сообщений: 214
По умолчанию

когда находишь максимальный сохраняй индекс строки в которой он лежит и затем заменишь всю строку

например индекс будет m;
Код:
for(int k =0; k < n; k++) // перебор по стобцам
a[m][k] = 1;
Помог, нажми на весы
html, js, php, С++, С#, OpenGl, DirectX, XNA, HLSL
Inv1s вне форума Ответить с цитированием
Старый 15.11.2011, 19:17   #3
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
По умолчанию

Пардоньте, это нужно в Паскале
gylayko вне форума Ответить с цитированием
Старый 15.11.2011, 19:23   #4
Inv1s
Форумчанин
 
Аватар для Inv1s
 
Регистрация: 06.11.2011
Сообщений: 214
По умолчанию

Блин не прочитал тему
С ним хуже у меня, но все почти также.
Проходим по всей строке и заменяем a(m,j) := 1;
Помог, нажми на весы
html, js, php, С++, С#, OpenGl, DirectX, XNA, HLSL
Inv1s вне форума Ответить с цитированием
Старый 15.11.2011, 19:26   #5
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
По умолчанию

а как запомнить адрес строки в которой есть этот элемент?? вот в чем основная проблема!
gylayko вне форума Ответить с цитированием
Старый 15.11.2011, 19:29   #6
Inv1s
Форумчанин
 
Аватар для Inv1s
 
Регистрация: 06.11.2011
Сообщений: 214
По умолчанию

Заведи переменную выше и присвой 0 вначале.
Когда находишь максимум присваивай этой переменной номер строки, он же у тебя есть
ты когда перебираешь массив по i и j, i - это номер строки, j - номер столбца
Помог, нажми на весы
html, js, php, С++, С#, OpenGl, DirectX, XNA, HLSL
Inv1s вне форума Ответить с цитированием
Старый 15.11.2011, 19:35   #7
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
По умолчанию

ясно, а как вывести измененный массив?? то есть поменял я местами, но как вывести на экран новый массив ?
gylayko вне форума Ответить с цитированием
Старый 15.11.2011, 19:38   #8
Inv1s
Форумчанин
 
Аватар для Inv1s
 
Регистрация: 06.11.2011
Сообщений: 214
По умолчанию

Код:
For i:=1 to n do
     Begin
          For j:=1 to m do
          Begin
               Write(A[i,j]);
               Write(" ");
          End;
     Writeln();
     End;
Помог, нажми на весы
html, js, php, С++, С#, OpenGl, DirectX, XNA, HLSL
Inv1s вне форума Ответить с цитированием
Старый 15.11.2011, 19:46   #9
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
По умолчанию

непонял! давай на примере одномерного массива:
Код:
uses crt;
var B:array[1..16] of integer; mini,maxy,x,j,i,max,min:integer;
begin
clrscr;
randomize;
for i:=1 to 16 do B[i]:=random(100);
write('*начальный массив');
for i:=1 to 16 do write(' ',B[i]);
min:=B[1];
for i:=1 to 16 do
   begin
     if B[i]<min then min:=B[i]; {находим минимальный}
     mini:=B[i];{mini это для смены позиций}
   end;
max:=B[16];{так  же и для максимального}
for i:=1 to 16 do
   begin
     if B[i]>max then max:=B[i];
     maxy:=B[i];
   end;
writeln;
writeln('max=',max,' min=',min);
x:=mini;{меняем минимальный элемент с восьмым}
mini:=B[8];
B[8]:=x;
readln;
end.
как дальше? каким образом вывести новый, измененный массив?
gylayko вне форума Ответить с цитированием
Старый 15.11.2011, 19:50   #10
Inv1s
Форумчанин
 
Аватар для Inv1s
 
Регистрация: 06.11.2011
Сообщений: 214
По умолчанию

Код:
for i:= 1 to 16 do
Writeln(B[i]);
Помог, нажми на весы
html, js, php, С++, С#, OpenGl, DirectX, XNA, HLSL
Inv1s вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хм, а как найти сумму в двухмерном массиве? L6go1as Помощь студентам 3 28.10.2011 00:28
Найти наибольший элемент массива К, не имеющий себе равных в массиве L Cucumber768 Помощь студентам 0 03.05.2011 01:37
В массиве A каждый элемент, кроме первого, заменить суммой всех предыдущих элементов aiktz Помощь студентам 7 11.10.2010 21:52
В двухмерном массиве все отрицательные элеметны заменить на их модули. А новый массив вывести на экран JulLy Паскаль, Turbo Pascal, PascalABC.NET 11 28.04.2009 08:13
Функция которая в массиве ищет максимальный по модулю элемент Absent Помощь студентам 5 19.11.2007 21:23