Здравствуйте, имею вот такую задачку, нужно её переделать по функциям.
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
| /* Дана целочисленная квадратная матрица. Опередить:
1) произведение элементов в тех строках,
которые не содержат отрицательных элементов.
2) максимум среди сумм элементов диагоналей,
параллельных главной диагонали матрицы. */
#include <iostream.h>
int main()
{
int N; // размер массива
int A[5][5]; // целочисленный массив
int Pro; // произведение элементов
int Sum; // сумма элементов диагоналей
int Max; // максимум среди сумм
bool bol; // флаг наличия отрицательного числа
// ввод данных
cout << "Vvedite N="; // вывод строки
cin >>N; // считываем значение стороны
// Решение
cout<<"vvedite "<<N<<" strok po "<<N<<" elementotv"<<endl;
for (int i=1;i<=N;i++){
cout<<i<<") ";
for (int j=1;j<=N;j++)
{
cin>>A[i][j]; // формирование массива
}
}
cout <<"Otvet" << endl; // вывод результата
// 1) задание
for (int i=1;i<=N;i++)
{
Pro=1;
bol = true ;
for (int j=1;j<=N;j++)
{
if(A[i][j]<0)bol = false;
Pro*=A[i][j];
}
if (bol){ cout<<"proizvedenie elementov "<<i<<" stroki = "<<Pro<<endl;}
}
// 2) задание
Max=A[1][1];
for (int i=1;i<=N;i++)
{
// проверка диагоналей со строки
Sum=0;
for (int jj=1;jj<=(N-i+1);jj++)
{
{Sum+=A[jj][jj+i-1];}
}
if (Sum>Max){Max=Sum;}
// проверка диагоналей со столбца
Sum=0;
for (int jj=1;jj<=(N-i+1);jj++){
{Sum+=A[jj+i-1][jj];}
}
if (Sum>Max){Max=Sum;}
}
cout<<"maksimum sredi summ elementov diagonalei, parallelnyh glavnoi diagonali matritcy = "<<Max<<endl;
system("PAUSE");
return 0;
} |
|
Добавлено через 6 минут
Кажется разобрался сам, но если кто предложит, что другое - скажу спасибо !
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
| #include <iostream.h>
#include <math.h>
void qwer(int mas[5])
{
int i,null,sum,min;
int n=5;
//êîëè÷åñòâî ýëåìåíòîâ ìàññèâà = 0
null=0;
for (i=0; i<n; i++)
if (mas[i]==0) null++;
cout << "\n koli4estvo elementov massiva = 0: " << null << endl;
//ñóììà ýëåìåíòîâ ìàññèâà, ðàñïîëîæåííûõ ïîñëå ìèíèìàëüíîãî ýëåìåíòà
sum=0;
min=0;
for(i=1; i<n; i++)
if (mas[i]<mas[min]) min=i;
for (i=min+1; i<n; i++)
sum+=mas[i];
cout << "\n cymma elementov massiva, raspolojenih posle minimalnogo elementa = " << sum << endl;
}
void asdf(int mas[5])
{
int i,j,t;
int n=5;
//ýëåìåíòû ìàññèâà ïî âîçðàñòàíèþ åãî ìîäóëåé
for (i=0; i<n-1; i++)
for (j=i+1; j<n; j++)
if (abs(mas[i])>abs(mas[j]))
{
t=mas[i];
mas[i]=mas[j];
mas[j]=t;
}
cout << "\n elementi massiva po vozrastaniu ego modylei:" << endl;
for(i=0; i<n; i++)
cout << mas[i] <<" "<< endl;
}
int main()
{
int mas[5], i;
int n=5;
//ââîä ìàññèâà
cout << "\n vvidite elementi massiva:" << endl;
for (i=0; i<n; i++)
cin >> mas[i];
qwer(mas);
asdf(mas);
system("PAUSE");
return 0;
} |
|
Добавлено через 33 минуты
Первый не тот код вставил
))
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
| #include <iostream.h>
#include <math.h>
int main()
{
const int n =5;
int mas[n], i, null, min, sum, j, t;
//ââîä ìàññèâà
cout << "\n Vvedite elementy massiva: " << endl;
for (i=0; i<n; i++)
cin >> mas[i];
//êîëè÷åñòâî ýëåìåíòîâ ìàññèâà = 0
null=0;
for (i=0; i<n; i++)
if (mas[i]==0) null++;
cout << "\n Kolichestvo elementov massiva ravnyh nylu = " << null << endl;
//ñóììà ýëåìåíòîâ ìàññèâà, ðàñïîëîæåííûõ ïîñëå ìèíèìàëüíîãî ýëåìåíòà
sum=0;
min=0;
for(i=1; i<n; i++)
if (mas[i]<mas[min]) min=i;
for (i=min+1; i<n; i++)
sum+=mas[i];
cout << "\n Cumma elementov massiva, raspolozhennykh posle minimalnogo elementa = " << sum << endl;
//ýëåìåíòû ìàññèâà ïî âîçðàñòàíèþ åãî ìîäóëåé
for (i=0; i<n-1; i++)
for (j=i+1; j<n; j++)
if (abs(mas[i])>abs(mas[j]))
{
t=mas[i];
mas[i]=mas[j];
mas[j]=t;
}
cout << "\n Elementy massiva po vozrastaniiu ego modulei: " << endl;
for(i=0; i<n; i++)
cout << mas[i] <<" "<< endl;
system("PAUSE");
return 0;
} |
|