01.04.2013, 13:16. Просмотров 248. Ответов 1
Здравствуйте. Помогите решить нижеследующую задачу.
В данный момент нужно переделать данную задачу с использованием функций. Целый день ломала голову не смогла ничего придумать. Заранее благодарю.
Условие такое:
напечатать заданную вещественную матрицу,расположив ее строки в порядке неубывания максимальных по абсолютной величине элементов.
Решила без использования функций так:
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
#include "stdafx.h"
#include <iostream>
int main()
{using namespace std;
setlocale(LC_ALL,"Russian");
const int r=3;
const int c=3;
int a[r][c];
int i,j,u,v;
for (i = 0; i < r; i++)
for (j = 0; j < c; j++)
{cout<<"Введите элемент массива ";
cin>>a[i][j];}
for (i = 0; i < r; i++)
{
for (j = 0; j < c; j++)
cout<<a[i][j]<<" ";
cout<<"\n";
}
int newa[r];
for (i = 0; i < r; i++)
{
newa[i]=abs(a[i][0]);
for (j = 0; j < c; j++)
if (abs(a[i][j]) > abs(newa [i]))
newa[i] = abs(a[i][j]);
cout<<"Максимальный по абсолютной велечине элемент в строке"<<i<<"="<<newa[i]<<endl;
}
for (i = 0; i < r; i++)
{
for (v = i + 1; v < r; v++)
{
if (abs(newa[i]) > newa[v])
{
u = newa[i];
newa[i] =newa[v];
newa[v] = u;
for (j = 0; j < c; j++)
{
u = a[i][j];
a[i][j] = a[v][j];
a[v][j] = u;
}
}
}
}
cout<<"Измененный массив: "<<endl;
for (i = 0; i < r; i++)
{
for (j = 0; j < c; j++)
cout<<a[i][j]<<" ";
cout<<"\n";
}
system ("pause");
return 0;
} |
|