Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР11-С++-01-мая-2012.doc
Скачиваний:
19
Добавлен:
15.09.2019
Размер:
2.5 Mб
Скачать

1.8.4. Поиск в матрице строки с максимальной суммой

/* Строка с максимальной суммой*/

#include <stdio.h>

int main()

{

int m, n, nmax, i, j;

float max, s, x[10][10];

print("Введите m, n");

scanf("%d %d", &m, &n);

for(i=0;i<m;i++)

for(j=0;j<n;j++)

{

printf ("Введите x[%d][%d]=", i, j);

scanf ("%f, &x[i][j]);

}

print ("Матрица x:");

for(i=0;i<m; i++)

{ for(j=0;j<n; j++)

printf("%8.2f',x[i][j]);

printf("\n");

}

s=0;

for(j=0; j<n; j++)

s =s+x[0][j]; //Нач. знач. мax - сумма элем. 0-ой стр.

max=s; nmax=0;

for(i=0;i<m;i++)

{ s=0;

for(j=0;j<n;j++) s+=x[i][j]; //Сумма элем. строк

if(max<s)

{ max=s; nmax=i;}

}

рrint("Максимальная сумма %.2f в строке %d\n",max,nmax);

fflush(stdin);

getchar();

return(0);

}

Рис. 11.4. Поиск в матрице строки с максимальной суммой

1.8.5. Определение количества строк матрицы, в которых суммы всех элементов отрицательные

Определить количество строк матрицы, в которых суммы всех элементов отрицательные. Массив объявить как динамический.

/*Пример обработки двумерного динамического массива*/

include <stdio.h>

include <math.h>

int main ( )

{

int i, j, m, n;

float K, S; //Описание переменных

puts (" введите n, m"); //Вывод сообщения

scanf ("%d %d", &n, &m); //Ввод исх. числа строк и столбцов

float**A=new float*[n];

for(i=0; i<n; i++)

A[i]=new float[m];

for(i=0; i<n; i++)

for(j=0; j<m; j++)

{

рrint("Введиге A[%d; %d]=", i, j);

scanf("%f&A[i] [j]);

}

K=0;

for(i=0; i<n; i++)

{

S=0;

for(j=0; j<m; j++) S=S+A[i] [j];

if(S<0) K=K+1;

}

printf("%f \n", K);

for(i=0; i<n; //Освобождение динамической памяти

delete[]A[i];

delete[]A;

}

Рис. 11.5. Определение количества строк матрицы, в которых суммы всех элементов отрицательные

Таблица 11.4

Таблица соответствия

Переменные

в задаче

Имя на языке Си

Тип

Комментарий

S

S

float

Сумма элементов i-той строки

A

A

float

Двумерный динамический массив

K

K

float

Количество искомых строк

-

n

int

Количество всех строк в матрице

-

m

int

Количество столбцов

-

i

int

Номер строки

-

1

int

Номер столбца

Тесты:

-3;

-2;

2;

6;

-3;

1)

A=

6;

7;

-1;

20;

-4;

K=2.

-4;

-2;

-3;

6;

-1;

-4;

-2;

4;

6;

4;

2)

A=

3;

5;

7;

2;

0;

K=0.

5;

0;

-2;

9;

0;