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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
demorate
1 / 1 / 0
Регистрация: 06.03.2011
Сообщений: 34
04.06.2011, 14:08     Как найти сумму строки в матрице? #1
Дана матрица размера M × N. Найти номер ее строки с наибольшей суммой элементов и вывести данный номер, а также значение наибольшей суммы.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2011, 14:08     Как найти сумму строки в матрице?
Посмотрите здесь:

C++ Нахождение в прямоугольной матрице номера строки, имеющей максимальную сумму элементов
В данной действительной квадратной матрице A[N, M] найти сумму элементов строки C++
C++ В матрице найти сумму элементов строки, в которой расположен элемент с наименьшим значением
C++ В прямоугольной матрице выявить все строки, у которых максимальный элемент превосходит сумму остальных элементов строки
C++ В квадратной матрице найти сумму модулей элементов в строках, содержащих хотя бы один отрицательный элемент; определить номер 1ой строки с 0-ым элем-о
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
pito211
 Аватар для pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
04.06.2011, 14:11     Как найти сумму строки в матрице? #2
просуммировать все элементы этой строки
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");
        }
я вот так ввел матрицу...
как мне прописать чтобы считало сумму в строке?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
04.06.2011, 14:21     Как найти сумму строки в матрице? #4
"пробегаешь" по всем строкам массива, в конце каждой строки сравниваешь имеющуюся сумму с максимальной. Если максимальная меньше текущей, максимальной присваиваешь значение текущей, переменной strMax присваиваешь номер этой строки, и в любом случае текущую сумму обнуляешь.
можно даже счетчик запустить во время считывания массива
demorate
1 / 1 / 0
Регистрация: 06.03.2011
Сообщений: 34
04.06.2011, 14:23  [ТС]     Как найти сумму строки в матрице? #5
Блин напишите пожалуста кодом..
soon
 Аватар для soon
2536 / 1301 / 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/ Не забудь объявить переменные
Nursik77
 Аватар для 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();
}
soon
 Аватар для soon
2536 / 1301 / 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();
}
весь код
поправил вывод массива
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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2011, 17:05     Как найти сумму строки в матрице?
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
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;
}
Yandex
Объявления
04.06.2011, 17:05     Как найти сумму строки в матрице?
Ответ Создать тему
Опции темы

Текущее время: 16:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru