Войти

Показать полную графическую версию : [решено] Программа на матрицу.


soon-end
18-05-2010, 19:30
Прошу помочь написать программу на языке C++ (Borland).
Задание: Данная матрица М(5,5). Среди элементов побочной диагонали найти наибольший элемент. Вывести его на печать и обнулить строку и столбец, в котором он расположен. За правильное написание вознаграждение!

Drongo
18-05-2010, 21:14
За правильное написание вознаграждение! »Да? А какое это будет вознаграждение? :)

lxa85
18-05-2010, 22:31
А сессия то, все ближе и ближе. :)
За правильное написание вознаграждение! »
Сколько? Я студентам подкину для разминки:)
При должной заинтересованности даже с отчетом к пятнице.

LilLoco
18-05-2010, 22:49
ну приблизительно как то так :) :

#include "stdafx.h"
#include "iostream"
using namespace std;


void main()
{
int matrix[5][5];
int imax=0,jmax=0,max=0;
for (int i=0; i<5; i++)
for (int j=0; j<5; j++)
{
cin >> matrix[i][j];
}
int z=4;
for (int i = 0; i<5; i++)
{
if (matrix[i][z]>max)
{
max = matrix[i][z];
imax = i;
jmax = z;
}
z--;
}
for (int i = 0;i<5;i++)
{
matrix[i][jmax] = 0;
matrix[imax][i] = 0;
}
}
}

а может и не так :) так что сильно не ругайте :)

soon-end
19-05-2010, 00:04
Спс, напиши плиз свою асю и wm кошелек LilLoco,

lxa85
19-05-2010, 00:20
LilLoco, ай, яй, яй. Косячёкс у тебя в коде :)
+ комментарии отсутствуют.
Я бы отправил на доработку. (Без обид :) )

LilLoco
19-05-2010, 07:57
LilLoco, ай, яй, яй. Косячёкс у тебя в коде »
А Не Мог Бы Ты Подсказать Где Именно Косячок :) :) :)

+ комментарии отсутствуют. »
Буду Исправляться :)

Спс, напиши плиз свою асю и wm кошелек LilLoco, »
Программа точно работает ?)

lxa85
19-05-2010, 08:41
LilLoco, намекну, дальше догадаешься сам.
Все элементы матрицы могут быть отрицательными.

LilLoco
19-05-2010, 10:48
логично, я как то не подумал об этом :) спасибо :)

Ну значит просто присвоить 1 элемент массива за максимальный!?!?!!?!


#include "stdafx.h"
#include "conio.h"
#include "iostream"
using namespace std;


void main()
{
int matrix[5][5];
int imax=0,jmax=0;
for (int i=0; i<5; i++)
for (int j=0; j<5; j++)
{
cin >> matrix[i][j];
}
int z=3;
max = matrix[0][4];
for (int i = 1; i<5; i++)
{
if (matrix[i][z]>max)
{
max = matrix[i][z];
imax = i;
jmax = z;
}
z--;
}
for (int i = 0;i<5;i++)
{
matrix[i][jmax] = 0;
matrix[imax][i] = 0;
}
}
cout >> max;
getch();
}

lxa85
19-05-2010, 12:24
Ну значит просто присвоить 1 элемент массива за максимальный!? »
ага :)

soon-end
19-05-2010, 22:05
Программа не выполняется(((( Много ошибок... Использовался Borland C++. Не подскажите как устранить проблему?

lxa85
19-05-2010, 23:32
soon-end, Если ты нам расскажешь как ты запускал программу, и какие ошибки она при этом выдает, то шанс есть.
LilLoco, за тех. поддержку берешь отдельно ? ;)
Переменная max не определена.
Начальный элемент выбран, а imax, jmax, так и остались равны 0. Это приводит к ошибкам.
#include <iostream>

//using namespace std;

int main() {
int matrix[5][5];
int imax=0,jmax=0,max;

for (int i=0; i<5; i++)
for (int j=0; j<5; j++)
{
std::cin >> matrix[i][j];
}

for (int i = 0; i<5; i++)
{
for (int j = 0; j<5; j++)
{
std::cout << matrix[i][j] << " ";
}
std::cout << std::endl;
}

int z=3;
max = matrix[0][4];
imax = 0;
jmax = 4;

for (int i = 1; i<5; i++)
{
if (matrix[i][z]>max)
{
max = matrix[i][z];
imax = i;
jmax = z;
}
z--;
}

for (int i = 0;i<5;i++)
{
matrix[i][jmax] = 0;
matrix[imax][i] = 0;
}

for (int i = 0; i<5; i++)
{
for (int j = 0; j<5; j++)
{
std::cout << matrix[i][j] << " ";
}
std::cout << std::endl;
}

std::cout << max;

return 0;
}

Среда разработки NetBeans, компилятор gcc

soon-end
19-05-2010, 23:38
Все, LilLoco исправил. Вот правильная прога:
#include "conio.h"
#include "iostream"


void main()
{
int matrix[5][5];
int imax=0,jmax=0;
int max;
int i;
for (i=0; i<5; i++)
for (j=0; j<5; j++)
{
cin >> matrix[i][j];
}
int z=3;
max = matrix[0][4];
for (i = 1; i<5; i++)
{
if (matrix[i][z]>max)
{
max = matrix[i][z];
imax = i;
jmax = z;
}
z--;
}
for (i = 0;i<5;i++)
{
matrix[i][jmax] = 0;
matrix[imax][i] = 0;
}
}
cout >> max;
getch();
}

Эта, без ошибок

lxa85
19-05-2010, 23:47
soon-end, не в обиду LilLoco, но простейший тест.
1 1 1 1 5
1 1 1 4 1
1 1 3 1 1
1 2 1 1 1
1 1 1 1 1

soon-end
19-05-2010, 23:49
что за тест?

не знаешь как решить?
Вывести на экран отдельно позитивные элементы массива вещества х(16) и отдельно негативные элементы. Найти максимальный элемент среди позитивных и минимальный среди негативных элементов.

lxa85
19-05-2010, 23:54
что за тест? »
:) Это проверочное задание. Выполни его, и тебе все станет понятно.
не знаешь как решить? »
Знаю, с использованием 3 целочисленных массивов, 48(3х16) сравнений, 3х переменных целого типа. Но я этим не занимаюсь.




© OSzone.net 2001-2012