Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Матрицы: найти максимальную сумму элементов строк матрицы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ прошу помощи, не могу найти ошибку http://www.cyberforum.ru/cpp-beginners/thread560190.html
#include<iostream> #include<conio.h> #include<stdlib.h> #include<stdio.h> #include<time.h> using namespace std; void draw_line(int n,char ch); void board(); void gamescore(char name1,char...
C++ Рекурсивные деревья День добрый. Очень нужна помощь в решении задачи: Найти все поддеревья, структура которых совпадает с заданной. Ввод/Создание/Вывод/...дерева написать труда не составило. С рекурсией и... http://www.cyberforum.ru/cpp-beginners/thread560172.html
Нужна программа которая считает угол между двумя заданными векторами (по координатам) C++
Помогите. Нужна программа которая считает угол между двумя заданными векторами (по координатам)
Построение блок-схемы к существующей программе C++
#include<iostream> using namespace std; #define n 100 int main() { int N, mas={0}, i, j, mas_res, res=0, min, tmp=0; bool mas1={false}; ...
C++ Изменение переменной перез указатель http://www.cyberforum.ru/cpp-beginners/thread560149.html
Здравствуйте, есть код: #include <iostream> using namespace std; void f(int *j); int main() { int i; int *p; p=&i; f(p);
C++ Листы жести - минимальную площадь Задача На складе хранятся прямоугольные листы жести разных размеров. Листы расположены горизонтально на полу. Для экономии поверхности, они накладываются друг на друга, но так, чтобы лист лежащий... подробнее

Показать сообщение отдельно
Sirius315
0 / 0 / 0
Регистрация: 05.12.2011
Сообщений: 37

Матрицы: найти максимальную сумму элементов строк матрицы - C++

27.04.2012, 15:41. Просмотров 609. Ответов 0
Метки (Все метки)

Лабораторная работа № 7
Функции
Цель работы: изучение правил составления и использования функций в программах на С++.
Пример
Задание. Найти максимальную сумму элементов строк матрицы 3×5 с использованием функций.
Пример программы:
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
#include <stdio.h>
 
const int m=3, n=5;
 
void inparr(int a[m][n])
{
int i,j;
for (i=0;i<m;i++)
 for (j=0;j<n;j++)
 scanf("%d",&a[i][j]);
}
 
void outarr (int a[m][n])
{
int i,j;
printf("Matrica:\n");
for (i=0; i<m; i++)
{
for (j=0; j<n; j++)
  printf("%5d", a[i][j]);
printf("\n");
}
}
 
int processarr(int a[m][n])
{
int i,j,s,max;
for(i=0;i<m;i++)
{
 s=0;
 for (j=0;j<n;j++)
   s+=a[i][j];
 if (i==0) max=s;
 else if (max<s) max=s;
}
return max;
}
 
void main()
{
int b[m][n];
inparr(b);
outarr(b);
printf("Maximalnaya summa stroki = %d", processarr(b));
}
Контрольные вопросы
1. Структура функции в языке С++, ее заголовок.
2. Вызов функции.
3. Способы передачи параметров.
4. Оператор return (2 формы записи).
5. Описание функции (прототип).

Лабораторное задание
1. Выбрать задание, соответствующее номеру варианта.
2. Составить алгоритм решения задачи.
3. Составить программу, которая выполняет следующие действия:
а) ввод исходных матриц;
б) вывод исходных матриц;
в) обработку матриц в соответствии с заданием.
Пункты а), б), в) оформить в виде функций. Глобальные переменные в программе не использовать.
4. Выполнить программу на ЭВМ
5. Оформить отчет

Варианты заданий
См. задание к лабораторной работе № 5.


Лабораторная работа №5
Обработка двумерных массивов. Указатели.
Цель работы: изучение способов описания, ввода-вывода и обработки двумерных массивов, использование указателей при работе с массивами.
Пример
Задание. Дана целочисленная матрица размера mn. Найти матрицу, получающуюся перестановкой столбцов (первого с последним, второго с предпоследним и т.д.).
Программа с использованием указателей:

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
#include <stdio.h>
void main()
{
int a[3][5], b[3][5], i, j, s, max;
printf ("vvedite 3 stroki poо 5 chisel");
for (i=0;i<3;i++)
 for (j=0;j<5;j++)
  scanf("%d",&a[i][j]);
printf ("Matrix a :\n");
 for (i=0; i<3; i++)
  {for (j=0; j<5; j++)
    printf ("%5d", a[i][j]);
    printf ("\n");
  }
for (j=0;j<5;j++)
  {for(i=0;i<3;i++)
      b[i][j]=a[i][4-j];
  }
printf ("Matrix a :\n");
 for (i=0; i<3; i++)
  {for (j=0; j<5; j++)
    printf ("%5d", b[i][j]);
    printf ("\n");
}
}


Программа без использования указателей:

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<stdio.h>
#include<conio.h>
#include<math.h>
#define n 3
#define  m 5
void main()
{
int a[n][m],b[n][m],i,j,*p;
clrscr();
printf("Vvedite massiw A\n");
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",&a[i][j]);
printf("Massiw A\n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%3d",a[i][j]);
printf("\n");
}
p=&a[0][0];
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
b[i][m-1-j]=*p;
p++;
}
}
printf("Massiw B\n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%3d",b[i][j]);
printf("\n");
}
getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru