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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2011, 15:38   #1
xov
 
Регистрация: 23.05.2011
Сообщений: 5
По умолчанию дана матрица( любая). если в заданной матрице количество

дана матрица( любая). если в заданной матрице количество отрицательных элементов в чётных строках меньше количества положительных- в нечётных, то поменяйте местами последнюю строку и главную диагональ.
xov вне форума Ответить с цитированием
Старый 23.05.2011, 15:53   #2
malinoff
Форумчанин
 
Аватар для malinoff
 
Регистрация: 08.01.2010
Сообщений: 205
По умолчанию

Язык? Наработки?
Если помог - кликни на значок весов под аватаром.
malinoff вне форума Ответить с цитированием
Старый 23.05.2011, 15:54   #3
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

ну сначало проверяйте на равенство отрицательных и положительных
как-то так
Код:
pol := 0;
otr := 0;
for j := 1 to cols do
    for i := 1 to rows do
    begin
        if ((i mod 2) <> 0) and (massiv[i,j] > 0) then Inc(pol)
        else if massiv[i,j] < 0 then Inc(otr);
    end;
дальше сверяем и если надо, то меняем
Код:
if otr < pol then
begin
    i := 1;
    for j := 1 to cols do
    begin
        temp := massiv[i,j];
        massiv[i,j] := massiv[rows,j]
        massiv[rows,j] := temp;
        Inc(i);
    end;
end;
где rows, cols это количество строк и столбцов.
Так как речь идёт о главной диагонали эти значения должны быть равны
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 23.05.2011, 16:21   #4
alex_8
Пользователь
 
Регистрация: 18.10.2009
Сообщений: 30
По умолчанию

Код:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>

int **matrix, n, m, pozitiv, negativ, tmp;

void main()
{
	clrscr();
	randomize();
	printf("Enter the number of rows: ");
	scanf("%i", &n);
	printf("Enter the number of columns: ");
	scanf("%i", &m);
	matrix = new int* [n];
	pozitiv = negativ = 0;
	for (int i = 0; i < n; i++)
	{
		matrix[i] = new int [m];
	}
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < m; j++)
		{
			matrix[i][j] = random(20)-10;
			printf("%5i", matrix[i][j]);
		}
		printf("\n");
		if (i % 2 == 0)
		{
			for (int j = 0; j < m; j++)
			{
				if (matrix[i][j] > 0) pozitiv++;
			}
		}
		else
		{
			for (int j = 0; j < m; j++)
			{
				if (matrix[i][j] < 0) negativ++;
			}
		}
	}
	printf("pozitiv: %i, negativ: %i\n", pozitiv, negativ);
	if (negativ < pozitiv)
	{
		for (int j = 0; j < m; j++)
		{
			tmp = matrix[j][j];
			matrix[j][j] = matrix[m-1][j];
			matrix[m-1][j] = tmp;
		}
		for (int i = 0; i < n; i++)
		{
			for (int j = 0; j < m; j++)
			{
				printf("%5i", matrix[i][j]);
			}
			printf("\n");
		}
	}

	for (int i = 0; i < n; i++)
	{
		delete matrix[i];
	}
	delete []matrix;
	getch();
}
ICQ 422605533

Последний раз редактировалось alex_8; 23.05.2011 в 16:25.
alex_8 вне форума Ответить с цитированием
Старый 23.05.2011, 17:27   #5
xov
 
Регистрация: 23.05.2011
Сообщений: 5
По умолчанию

Hacker19_90
program ew3;
var
a: array [1..5,1..5] of integer;
i,j: byte;
pol,otr: integer;
f:text;
begin

assign ( f,'kostya.txt');
reset(f);
writeln('isxodnaia matricha');
for i:=1 to 5 do
begin
writeln;
for j:=1 to 5 do
begin
read( f, a[i,j]);
write (a[i,j]);
pol := 0;
otr := 0;
for j := 1 to i do
for i := 1 to rows do
begin
if ((i mod 2) <> 0) and (massiv[i,j] > 0) then Inc(pol)
else if massiv[i,j] < 0 then Inc(otr);
end;



if otr < pol then
begin
i := 1;
for j := 1 to j do
begin
temp := massiv[i,j];
massiv[i,j] := massiv[rows,j]
massiv[,j] := temp;
Inc(i);
end;
end;
xov вне форума Ответить с цитированием
Старый 23.05.2011, 17:27   #6
xov
 
Регистрация: 23.05.2011
Сообщений: 5
По умолчанию

что тут ещё добавить нужно?
xov вне форума Ответить с цитированием
Старый 23.05.2011, 17:29   #7
xov
 
Регистрация: 23.05.2011
Сообщений: 5
По умолчанию

посмотри ниже что добавить нужно плиз
xov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
(массивы) В заданной матрице A(N, M) поменяйте местами столбцы с номерами P и Q.(С++) Bleize Помощь студентам 6 26.12.2010 20:56
Подсчитать в матрице количество элементов в строке, больше заданной величины (Турбо Паскаль) Дмитрий1992 Паскаль, Turbo Pascal, PascalABC.NET 4 21.12.2010 15:37
Дана матрица размера 5 x 10. В каждой строке найти количество элементов Executioner3 Помощь студентам 12 11.05.2010 16:27
Дана матрица символов. Определить строку, в которой максимальное количество букв. SilentM Помощь студентам 9 23.05.2009 14:30
Дана прямоугольная матрица. Определить количество столбцов, произведение элементов которых меньше 5 Sweeney Паскаль, Turbo Pascal, PascalABC.NET 0 10.12.2008 01:41