Помощь - Поиск - Пользователи - Календарь
Полная версия: Матрицы
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Другие языки
Анютка
Помогите, пожалуйста, перевести задачу из Паскаля в С rolleyes.gif
Вот условие:
Цитата
Дана целочисленная квадратная матрица. Определить:
1) сумму элементов в тех столбцах, которые не содержат отрицательных элементов;
2) минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы.
Переставить строки матрицы в порядке неубывания элементов первого столбца.

Вот её решение на Паскале:
program mat;
var a: array [1..100,1..100] of integer;
   b: array [1..100] of integer;
   i,j,n,k,t,s: integer;
   summ, min, ukaz: integer;
begin
  randomize;
  writeln('Введите размерность матрицы');
  readln(n);
  For i:=1 to n do
  begin
  For j:=1 to n do
        begin
        a[i,j] := random(100)-7;
        write (a[i,j]:2,' ');
        end;
        writeln;
        b[i]:= 0; min:=a[1,1];
  end;
 ukaz:=0;
 for j:=1 to n do
 begin
 s:=0;
 for i:=1 to n do
if A[i,j] >= 0 then inc(s, A[i,j])
  else
      begin
           s:=-1;
           ukaz:=ukaz+1;
           break
      end;
   if s >= 0 then writeLn('Сумма в неотрицательном столбце ', s) else
   if ukaz=n then writeln('Положительных столбцов нет!');
    end;
  writeln;
  writeln('Суммы диагоналей выше побочной (по модулю)');
  For j:=1 to n-1 do
  Begin
     summ := 0;
     For i:=1 to n-j do
        summ := summ + abs(a[i,n-j-i+1]);
     b[j] := summ;
     if abs(b[j])<min then min:=abs(b[j]);
     write(b[j],' ');
  end;
  writeln; writeln;
  writeln('Суммы диагоналей ниже побочной (по модулю)');
  For j:=2 to n do
  Begin
     summ := 0;
     For i:=j to n do
        summ := summ + abs(a[i,n-i+j]);
     b[j+n-2] := summ;
     if abs(b[j+n-2])<min then min:=abs(b[j+n-2]);
     write(b[j+n-2],' ');
  end;
    writeln;
    writeln;
  writeln('Минимум среди сумм диагоналей­ ',abs(min));
  writeln('Преобразованный массив ');
  for i:=1 to n do
for j:=n downTo i+1 do
if a[j-1,1]>a[j,1] then
for k:=1 to n do begin
t:=a[j-1,k];a[j-1,k]:=a[j,k];a[j,k]:=t
end;
for i:=1 to n do begin
for j:=1 to n do
write(a[i,j]:4);
writeln;
end;
readln
  end.


Заранее благодарна!
volvo
Анютка, так С или С++ ? Это ОЧЕНЬ разные вещи!
Анютка
Просто С ( не С++)
Анютка
Мне так никто и не помог sad.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.