Помощь - Поиск - Пользователи - Календарь
Полная версия: Матрица
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
test100
Помогите пожалуйста решить. :molitva:

Матрица n на m элементов

В каждой строке заменить максимальный элемент на сумму элементов соответствующей строки.
volvo
Значит поиском пользоваться не хотим? Таких задач в разных вариантах ДЕСЯТКИ решены на форуме !!! Сколько можно одни и те же вопросы задавать?
klem4
Цитата(volvo @ 9.06.05 16:00)
Значит поиском пользоваться не хотим? Таких задач в разных вариантах ДЕСЯТКИ решены на форуме !!! Сколько можно одни и те же вопросы задавать?
:yes:

на уже, не мучайся, но впредь пользуйся поиском!


for i:=1 to n do
    begin
       s:=0;
       for j:=1 to m do
        s:=s+x[i,j];
       nmax:=1;
       for j:=2 to m do
        if x[i,j]>x[i,nmax] then
         nmax:=j;
       x[i,nmax]:=s;
   end;
test100
Почему-то только в некоторых строках заменяет правильно...


program test;   uses crt;
const n=4; m=4;
var
x:array[1..n,1..m] of integer;
	nmax:integer;
	s:integer;
	i,j:byte;
begin 
clrscr;
randomize;
writeln('Исходный матрица');
for i:=1 to n do
	begin
		for j:=1 to m do
			begin
			x[i,j]:=random(10);
			write(x[i,j]:4);
			end;
			writeln;
	end;

for i:=1 to n do
	begin
		s:=0;
			for j:=1 to m do
			s:=s+x[i,j];
			nmax:=1;

for j:=2 to m do
	if x[i,j]>x[1,nmax] then
	nmax:=j;
	x[i,nmax]:=s;
	end;
writeln('Полученная матрица');
for i:=1 to n do
begin
for j:=1 to m do write(x[i,j]:4);
writeln;
end;
end.



Еще не подскажите как сделать чтобы максимальный элемент в сумму не входил.
klem4
у меня все работает :

uses crt;
const n=2;
      m=3;

var
   x:array[1..n,1..m] of integer;
   i,j,s,nmax:integer;

begin
   clrscr;
   randomize;
   for i:=1 to n do
    begin
       writeln;
       for j:=1 to m do
        begin
           x[i,j]:=random(11);
           write(x[i,j]:2,' ');
        end;
    end;

   for i:=1 to n do
    begin
       s:=0;
       for j:=1 to m do
        s:=s+x[i,j];
       nmax:=1;
       for j:=2 to m do
        if x[i,j]>x[i,nmax] then
         nmax:=j;
       x[i,nmax]:=s;
   end;

   WRITELN;
   for i:=1 to n do
    begin
       writeln;
       for j:=1 to m do
        write(x[i,j]:2,' ');
    end;

   readln;
end.





klem4
у тебя ошибка

Цитата
for j:=2 to m do
if x[i,j]>x[1,nmax] then
nmax:=j;
x[i,nmax]:=s;
end;


IF x[i,j]>x[i,nmax] а не x[1,nmax]
volvo
Цитата(test100 @ 9.06.05 16:58)
Еще не подскажите как сделать чтобы максимальный элемент в сумму не входил.

Вместо
x[i, nmax] := s;

поставь
x[i, nmax] := s - x[i, nmax];
test100
klem4 и volvo
Большое вам СПАСИБО
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.