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

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

Войти
Регистрация
Восстановить пароль
 
Klimova
0 / 0 / 0
Регистрация: 08.01.2011
Сообщений: 42
#1

Матрица - на месте каждого числа записывать сумму всех чисел - C++

21.10.2012, 19:39. Просмотров 332. Ответов 5
Метки нет (Все метки)

есть матрица:
1 2 3
4 5 6
7 8 9

нужно, чтобы на месте каждого числа записывалась сумма всех чисел, которые находятся выше и левее.

1 3 6
5 12 21
12 27 45

не могу разодраться с циклами, заранее спасибо)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2012, 19:39
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Матрица - на месте каждого числа записывать сумму всех чисел (C++):

Даны целые числа n, m и матрица целых чисел A[n,m]. Вычислить суммы положительных элементов каждого столбца ма - C++
Даны целые числа n, m и матрица целых чисел A. Вычислить суммы положительных элементов каждого столбца матрицы. Написать функции вычисления...

Даны три целых числа. Вычесть из суммы всех чисел сумму четных чисел - C++
Даны три целых числа. Вычесть из суммы всех чисел сумму четных чисел. Помогите решить задачу, с объяснением(изучаю данный язык неделю,...

Для каждого числа в текстовом файле определить сумму его чисел - C++
В текстовом файле из 10 строк записаны построчно целые положительные числа. Для каждого числа определить сумму его цифр. Примечание: ...

Вычислить сумму квадратов всех целых чисел, меньших заданного числа a - C++
Вычислить сумму квадратов всех целых чисел, меньших заданного числа a.

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

Необходимо найти сумму всех чисел в последовательности Фибоначчи, не превосходящих введенного числа n - C++
Последовательность Фибоначчи формируется следующим образом: первый и второй члены последовательности равны 1, а каждый следующий равен...

5
MrGrig
177 / 160 / 2
Регистрация: 08.10.2012
Сообщений: 422
21.10.2012, 21:01 #2

Не по теме:

Цитата Сообщение от Klimova Посмотреть сообщение
не могу разодраться с циклами, заранее спасибо)
зачем драться с циклами? с ними дружить нада=)



C++
1
2
3
4
5
6
7
8
9
10
11
12
void repay(int mas[][],int n,int m){//n и m есть "длина и ширина" матрици, соответственно если матрица квадратка везде м заменить на н
    for(int i=1;i<n;i++){
        for(int j=1;j<m;j++){
            int i1=i,j1=j,sum=0;
            while(i1!=-1)
                sum+=mas[i1--][j];
            while(j1!=-1)
                sum+=mas[i][j1--];
            mas[i][j]+=sum;
        }
    }
}
0
Klimova
0 / 0 / 0
Регистрация: 08.01.2011
Сообщений: 42
10.11.2012, 19:32  [ТС] #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
for(int i =0; i<m; i++)
    {
              for(int j=0; j<n; j++)
          {
                int sum=0;
                int x = i, y = j;
                    while(x!=-1)
                {
                    while(y!=-1)
                    {
                      sum+= A[x][y];
                      y--;
                    }
               x--;
               y = j;
                }
          q[i][j]= sum;
          }
    }
этот вариант лучше)
0
valeriikozlov
Эксперт С++
4680 / 2506 / 322
Регистрация: 18.08.2009
Сообщений: 4,550
11.11.2012, 07:30 #4
Цитата Сообщение от Klimova Посмотреть сообщение
этот вариант лучше)
оба варианта неправильные. А вот этот вариант один из самых быстрых будет:
пусть дана матрица a[][] размером: n строк, m столбцов. Тогда формируем матрицу b[][] (таким же размером) так:
C++
1
2
3
4
5
6
7
8
9
int i, j;
b[0][0]=a[0][0];
for(i=1; i<m; i++)
    b[0][i]=a[0][i]+b[0][i-1];
for(i=1; i<n; i++)
    b[i][0]=a[i][0]+b[i-1][0];
for(i=1; i<n; i++)
    for(j=1; j<m; j++)
        b[i][j]=a[i][j]+b[i-1][j]+b[i][j-1]-b[i-1][j-1];
0
Klimova
0 / 0 / 0
Регистрация: 08.01.2011
Сообщений: 42
11.11.2012, 17:36  [ТС] #5
не знаю... у меня все работает)
0
valeriikozlov
Эксперт С++
4680 / 2506 / 322
Регистрация: 18.08.2009
Сообщений: 4,550
11.11.2012, 17:51 #6
Цитата Сообщение от Klimova Посмотреть сообщение
не знаю... у меня все работает)
да, извиняюсь, невнимательно Ваш код посмотрел, рабочий, но медленней моего (особенно при больших m и n будет видна разница)
0
11.11.2012, 17:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.11.2012, 17:51
Привет! Вот еще темы с ответами:

Вводятся числа, пока не вводится 0, если его ввели, то программа вычисляет сумму всех введённых чисел - C++
в компьютер вводятся числа, пока не вводится 0, если его ввели, то программа вычисляет сумму всех введённых чисел

В массиве целых чисел удалить все отрицательные числа; найти сумму всех элементов до и после преобразования - C++
С использованием функций и динамических массивов cоставить следующую задачу: В массиве целых чисел T(N) удалить все отрицательные...

Упорядочить заданную последовательность чисел так, чтобы каждый элемент, стоящий на нечетном месте, был больше каждого из соседних - C++
Здесь совсем у меня вариантов нету.. не сталкивался с подобной сортировкой до этого. Нужно составить алгоритм, упорядочивающий заданную...

Даны два целых числа A и B (A < B). Найти сумму всех целых чисел от A до B включительно - C++
Даны два целых числа A и B (A &lt; B). Найти сумму всех целых чисел от A до B включительно. как это реализовать на с++??


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

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

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