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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
demorate
1 / 1 / 0
Регистрация: 06.03.2011
Сообщений: 34
#1

Как найти сумму строки в матрице? - C++

04.06.2011, 14:08. Просмотров 1582. Ответов 9
Метки нет (Все метки)

Дана матрица размера M × N. Найти номер ее строки с наибольшей суммой элементов и вывести данный номер, а также значение наибольшей суммы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2011, 14:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как найти сумму строки в матрице? (C++):

В данной действительной квадратной матрице A[N, M] найти сумму элементов строки - C++
В данной действительной квадратной матрице A найти сумму элементов строки, в которой расположен элемент с наименьшим значением,...

В матрице найти сумму элементов строки, в которой расположен элемент с наименьшим значением - C++
в данной действительной квадратной матрице порядка n найти сумму элементов строки ,в которой расположен элемент с наименьшим значением....

В квадратной матрице найти сумму модулей элементов в строках, содержащих хотя бы один отрицательный элемент; определить номер 1ой строки с 0-ым элем-о - C++
Дана целочисленная квадратная матрица. 1) Найти сумму модулей элементов в строках, содержащих хотя бы один отрицательный элемент. 2)...

В прямоугольной матрице выявить все строки, у которых максимальный элемент превосходит сумму остальных элементов строки - C++
С++ Кому не сложно, пожалуйста помогите новичку.. В прямоугольной матрице выявить все строки, у которых максимальный элемент...

Определить сумму каждой строки в матрице - C++
В матрице А определить сумму каждой строки и строчку с минимальной суммой вывести на печать. помогите пожалуйста решить,с...

В матрице вычислить сумму элементов заданой строки - C++
Помогите решить задачу В массиве А(1:2, 1:3) определить сумму S элементов второй строки и каждый элемент третьего столбца умножить на S.

9
pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
04.06.2011, 14:11 #2
просуммировать все элементы этой строки
1
demorate
1 / 1 / 0
Регистрация: 06.03.2011
Сообщений: 34
04.06.2011, 14:16  [ТС] #3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
main() {
int i, j, num, m, n, pl, mn, f, a[100][100];
 
printf("vvedite m: "); 
scanf("%d", &m);
printf("vvedite n: "); 
scanf("%d", &n);
 
  for (i=1;i<=m;i++){
    for (j=1;j<=n;j++){
      printf("a[%d][%d]:",i,j);
      scanf("%d", &a[i][j]);
}}
  for (i=1;i<=m;i++){
    for (j=1;j<=n;j++){
        printf("%d ", a[i][j]);
 
}
        printf("\n");
        }
я вот так ввел матрицу...
как мне прописать чтобы считало сумму в строке?
0
soon
2541 / 1306 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
04.06.2011, 14:21 #4
"пробегаешь" по всем строкам массива, в конце каждой строки сравниваешь имеющуюся сумму с максимальной. Если максимальная меньше текущей, максимальной присваиваешь значение текущей, переменной strMax присваиваешь номер этой строки, и в любом случае текущую сумму обнуляешь.
можно даже счетчик запустить во время считывания массива
0
demorate
1 / 1 / 0
Регистрация: 06.03.2011
Сообщений: 34
04.06.2011, 14:23  [ТС] #5
Блин напишите пожалуста кодом..
0
soon
2541 / 1306 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
04.06.2011, 14:25 #6
Цитата Сообщение от demorate Посмотреть сообщение
for (i=1;i<=m;i++){
* * for (j=1;j<=n;j++){
* * * printf("a[%d][%d]:",i,j);
* * * scanf("%d", &a[i][j]);
}}
на
C
1
2
3
4
5
6
7
8
9
10
11
12
13
for (i=0;i<m;i++){
         for (j=0;j<n;j++){
                printf("a[%d][%d]:",i,j);
                scanf("%d", &a[i][j]);
                tmpMax+=a[i][j];
         }
         if (sumMax < tmpMax)
         {
               sumMax = tmpMax;
               strMax = i;
         }
         tmpMax=0;
}
Нумерация в массиве идет с 0 и до m-1, учитывайте это, а то выйдете за пределы массива.
ps/ Не забудь объявить переменные
0
Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
04.06.2011, 14:26 #7
Ну к примеру тут мне надо было найти сумму 1-ой,2-ой и последней строки и макс. из них
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
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#define k 6
#define n 7
main()
{
int a[k][n];
int i,j,s1=0,s2=0,s3=0,l;
int max=0;
printf("Matrix: \n\n");
for(i=0;i<k;i++)
 {for(j=0;j<n;j++)
   {a[i][j]=rand()%10;
    printf(" %i",a[i][j]);
   }
printf("\n\n");
 }
i=0;
 for(j=0;j<n;j++)
s1=s1+a[i][j];
printf("s1=%i",s1);
i=1;
 for(j=0;j<n;j++)
s2=s2+a[i][j];
printf("\n\ns2=%i",s2);
i=5;
 for(j=0;j<n;j++)
s3=s3+a[i][j];
printf("\n\ns3=%i",s3);
if(s1>s2 && s1>s3) max=s1;
 else if(s2>s1 && s2>s3) max=s2;
 else max=s3;
printf("\n\nMax=%i",max);
getch();
}
0
soon
2541 / 1306 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
04.06.2011, 14:34 #8
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
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
main() 
{
       int i, j, num, m, n, pl, mn, f, a[100][100], tmpMax=0, sumMax=0, strMax=0;
       printf("vvedite m: "); 
       scanf("%d", &m);
       printf("vvedite n: "); 
       scanf("%d", &n);
       for (i=0;i<m;i++)
       {
           for (j=0;j<n;j++)
           {
                printf("a[%d][%d]:",i,j);
                scanf("%d", &a[i][j]);
                tmpMax+=a[i][j];
           }
           if (sumMax < tmpMax)
           {
                sumMax = tmpMax;
                strMax = i+1;
           }
           tmpMax=0;
       }
       printf("\n");
       for (i=0;i<m;i++)
       {
           for (j=0;j<n;j++)
               printf("%d\t ", a[i][j]);
           printf("\n");
       }
       printf("%d %d", sumMax, strMax);
       getch();
}
весь код
поправил вывод массива
1
sandora
12 / 12 / 0
Регистрация: 10.02.2011
Сообщений: 42
04.06.2011, 14:39 #9
C++
1
2
3
4
5
6
7
double sum (double *A, int n,)
{
double result = 0; 
for ( int i = 0; i < n; i++ )
result += A[i]; 
return result;
}
0
easybudda
Модератор
Эксперт CЭксперт С++
9680 / 5630 / 954
Регистрация: 25.07.2009
Сообщений: 10,804
04.06.2011, 17:05 #10
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>
#include <stdlib.h>
#include <time.h>
 
#define ROWS 15
#define COLUMNS 5
#define FIELD 3
#define TOP 10
 
int sum(int * arr, size_t size) { return *arr + ( ( size > 1 ) ? sum(arr + 1, size - 1) : 0 ); }
 
void fill(int * arr, size_t size, int high) {
    while ( size-- )
        *arr++ = rand() % high;
}
 
void dump(const int * arr, size_t size, size_t field){
    while ( size-- )
        printf("%*d", field, *arr++);
}
 
int * max(const int * arr, size_t size){
    return ( size > 1 ) ? ( *arr < *(arr + size - 1) ) ? max(arr + 1, size - 1) : max(arr, size - 1) : (int*)arr;
}
 
int main(void){
    int matrix[ROWS][COLUMNS], sums[ROWS], i, * pMax;
 
    srand(time(NULL));
    printf("MATRIX            SUM\n");
    for ( i = 0; i < ROWS; ++i ){
        fill(matrix[i], COLUMNS, TOP);
        dump(matrix[i], COLUMNS, FIELD);
        printf("%*d\n", FIELD * 2, ( sums[i] = sum(matrix[i], COLUMNS) ));
    }
    printf("Row(s) with max sum: ");
    pMax = max(sums, ROWS);
    for ( i = 0; i < ROWS; ++i )
        if ( sums[i] == *pMax )
            printf("%d ", i + 1);
    printf("\n");
 
    system("pause");
    return 0;
}
0
04.06.2011, 17:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2011, 17:05
Привет! Вот еще темы с ответами:

В матрице А (mxn) найти найти сумму элементов по колонкам, значения которых по модулю меньше заданного числа К - C++
a) задать значения элементов массива при объявления переменных; b) значения элементов массива ввести с клавиатуры....

Нахождение в прямоугольной матрице номера строки, имеющей максимальную сумму элементов - C++
Написать и протестировать функцию для нахождения в прямоугольной матрице номера строки, имеющей максимальную сумму элементов. Не...

В матрице найти сумму элементов - C++
1. Для матрицы размером m*m, найти сумму элементов, которые расположенные ниже главной диагонали, в рядах, которых начинаются с...

В матрице найти сумму и произведение элементов строк - C++
Тема: Анализ задачи Цель: Отработать умение анализа задач,составить алгоритм и програму. Проанализировать задачу: составить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru