IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Матрицы, С++
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Женский
Реальное имя: Анна

Репутация: -  0  +


Помогите, пожалуйста, перевести задачу из Паскаля в С 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.


Заранее благодарна!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Анютка, так С или С++ ? Это ОЧЕНЬ разные вещи!
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Женский
Реальное имя: Анна

Репутация: -  0  +


Просто С ( не С++)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Женский
Реальное имя: Анна

Репутация: -  0  +


Мне так никто и не помог sad.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 17.04.2024 5:45
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name