Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
3 / 3 / 3
Регистрация: 06.02.2018
Сообщений: 66
1

Как суммировать 2 столбец и 2 строку

09.02.2018, 11:06. Показов 1322. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Что я сделал не так?
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
#include <iostream>
 
int main(){
    int a[20][20];
    int n;
    int i;
    int j;
    int col [20]={};
    int row [20]={};
    std::cout<<"n=";
    std::cin>>n;
    for (i=1; i<n; ++i){
        for(j=0; j<n; ++j){
        std::cin>>a[i][j];
        }
    }
    for (i=1; i<n;i=i+2){
        std::cout<<std::endl;
        for(j=0; j<n; ++j){
            std::cout<<a[i][j]<<" ";
            col[i]=col[i]+a[i][j];
            }
            /*
            4+5+6       a[1][0]+a[1][1]+a[1][2]
            2+5+8       a[0][1]+a[1][1]+a[2][1]+
            */
        
    std::cout << col[i];
    }
    for (j=1; j<n;j=j+2){
        std::cout<<std::endl;
        for(i=0; i<n; ++i){
            std::cout<<a[i][j]<<" ";
            row[j]=row[j]+a[i][j];
        }
        std::cout << row[j]+col[i];
    }
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.02.2018, 11:06
Ответы с готовыми решениями:

Суммировать столбец по условию
имеется таблица нужен запрос который проссумирует столбец если один и тот же, а так же один...

Как поменять местами столбец на строку
Ребят подскажите можно ли в матлабе перевернуть вектор столбец на вектор строку?

Суммировать все строки и показать максимальную строку
Решить матрицу a ] Суммировать все строки и показать максимальную строку ] Суммировать все...

Как вывести всю строку(столбец) в массиве
Привет Всем! Есть матрица, например 1 4 7 10 2 5 8 11 3 6 9 12 Мне нужно вывести,...

20
1755 / 1347 / 1407
Регистрация: 28.10.2016
Сообщений: 4,267
09.02.2018, 11:25 2
Проще сразу в один массив суммы писать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <ctime>
 
int main() {
    srand(time(NULL));
    int a[20][20], sum[20], n;
    std::cout << "n = ";
    std::cin >> n;
    for (int i = 0; i<n; ++i) {
        for (int j = 0; j<n; ++j) {
            a[i][j] = -10 + rand() % 20;
            std::cout << a[i][j] << "\t";
        }
        std::cout << "\n";
    }
    for (int i = 0; i < n; i++) {
 //элемент на пересечении строки и столбца не складываем с самим собой
        sum[i] = i != 1 ? a[i][1] + a[1][i] : a[i][1];
        std::cout << sum[i] << " ";
    }
    return 0;
}
0
║XLR8║
1212 / 909 / 270
Регистрация: 25.07.2009
Сообщений: 4,361
Записей в блоге: 5
09.02.2018, 13:54 3
Цитата Сообщение от Reflevmas Посмотреть сообщение
Что я сделал не так?
А какое задание?
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
09.02.2018, 14:06 4
Hitoku, выводит несколько чисел. что это за результаты ?
Цитата Сообщение от Hitoku Посмотреть сообщение
//элемент на пересечении строки и столбца не складываем с самим собой
почему?
0
Hitoku
09.02.2018, 14:09
  #5

Не по теме:

Yetty, действительно... ну да и ладно

C++
18
sum[i] = a[i][1] + a[1][i];

0
Yetty
09.02.2018, 14:14
  #6

Не по теме:

Hitoku, насчёт нескольких результатов ничего не сказали

0
3 / 3 / 3
Регистрация: 06.02.2018
Сообщений: 66
10.02.2018, 15:25  [ТС] 7
Спасибо большое.Но код я уже написал. Вот оно

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
#include <iostream>
 
int main(){
    
    int a[20][20];
    int n;
    int i;
    int j;
    std::cin>>n;
    for(i=0; i<n; ++i){
        for(j=0; j<n; ++j){
        std::cin>>a[i][j];
        }
    }
 
    for(j=0; j<n; ++j){
        if ((j-1)%2==0){
            for(i=0; i<n; ++i){
            std::cout<<a[i][j]<<"+"; 
            }
 
        }
    }
    for(i=0; i<n; ++i){
        if ((i-1)%2==0){
            for(j=0; j<n; ++j){
            std::cout<<a[i][j]<<"+"; 
            }
 
        }
    }
return 0;
}
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
10.02.2018, 16:12 8
Reflevmas, зачем по два цикла если есть конкретно второй столбец и вторая строка
или в условии каждый второй столбец и каждая вторая строка ?
0
3 / 3 / 3
Регистрация: 06.02.2018
Сообщений: 66
10.02.2018, 16:22  [ТС] 9
Yetty , каждая второя.Просто если вы мне сказали одну, вторую я и сам смог бы понять.Спасибо всем за помощь и дружелюбие. Отличный форум. Вот вводимые числа
1 2 3
4 5 6
7 8 9
Мне нужно было, получить вот это 2+5+8+4+5+6
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
10.02.2018, 16:34 10
Reflevmas, так на Вашем примере одинаково вторая и каждая вторая - пример что Вам нужно на матрице больше размером (хотя бы 4х4) сбросьте . и if лишний в цикле - это можно в for задать - шаг 2 сделать

Добавлено через 6 минут
и самое главное - подсчёта суммы нет в Вашем коде
0
3 / 3 / 3
Регистрация: 06.02.2018
Сообщений: 66
10.02.2018, 18:45  [ТС] 11
Yetty, когда я написал этот пост я и в правду думал, что мне нужно подсчёт суммы.Но вот мой учитель сказал, что я неправильно понял суть вопроса.Мне нужно было, получить вот это 2+5+8+4+5+6. А вот на счёт for и if я непонял каким способом.Можно это сделать.Буду благодарен если напишите ваш вариант.
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
10.02.2018, 18:55 12
Reflevmas, Вы пример - то для матрицы 4x4 сбросьте (а лучше оригинал условия задачи) - как можно
Вам что-то советовать, если Вы не говорите что Вам конкретно нужно ?
а насчёт for - он может идти не только с шагом 1 (i++) но и c другим шагом, например с шагом 2: i+=2
0
3 / 3 / 3
Регистрация: 06.02.2018
Сообщений: 66
10.02.2018, 19:04  [ТС] 13
Вот оно
Миниатюры
Как суммировать 2 столбец и 2 строку  
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
10.02.2018, 19:11 14
там 4 варианта - Ваш вариант в левом верхнем углу или нужны все четыре варианта ? и зачем изначально берёте массив 20x20 - все матрицы 3х3
0
3 / 3 / 3
Регистрация: 06.02.2018
Сообщений: 66
10.02.2018, 19:21  [ТС] 15
Yetty я уже решил 3 из 4 этих упражнений.Когда я написал этот пост, мне нужно было решить задачу № 1. Я после долгого раздумывания решил спросить в форуме.И вот я спросил. Сейчас задачу под № 1 я уже решил. Но я непонял, что вы хотели сказать. Цитирую
Цитата Сообщение от Yetty Посмотреть сообщение
Reflevmas, так на Вашем примере одинаково вторая и каждая вторая - пример что Вам нужно на матрице больше размером (хотя бы 4х4) сбросьте . и if лишний в цикле - это можно в for задать - шаг 2 сделать
Видимо у меня не хорошо получилось объяснить мою точку зрения.
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
10.02.2018, 19:45 16
Лучший ответ Сообщение было отмечено Reflevmas как решение

Решение

Reflevmas, Вы решили задачу, я не спорю - но скорее всего будет лишний +. я бы как-то так набросал:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
int main()
{    
    int a[3][3], i, j;    
    
    std::cout<<"Enter matrix:\n";
    for(i=0; i<3; i++)    
        for(j=0; j<3; j++)
        std::cin>>a[i][j];    
 
    for(i=0; i<3; i++)        
        std::cout<<a[i][1]<<"+"; 
        
    for(j=0; j<3; j++)        
        if (j!=2) std::cout<<a[1][j]<<"+";
        else std::cout<<a[1][j];
system("Pause");
return 0;   
}
Добавлено через 12 минут
хотя для такой задачи вместо строк 12-17 можно ограничиться и одной строкой
C++
1
std::cout<<a[0][1]<<"+"<<a[1][1]<<"+"<<a[2][1]<<"+"<<a[1][0]<<"+"<<a[1][1]<<"+"<<a[1][2];
0
3 / 3 / 3
Регистрация: 06.02.2018
Сообщений: 66
10.02.2018, 19:46  [ТС] 17
Yetty результат вашего кода 1+4+7+3+4+5 . Мне нужно было 2+5+8+4+5+6 или 4+5+6+2+5+8.
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
10.02.2018, 19:51 18
Цитата Сообщение от Reflevmas Посмотреть сообщение
Yetty результат вашего кода 1+4+7+3+4+5
Как Вы такое получили ?
Я завожу 1 2 3 4 5 6 7 8 9 - получаю 2+5+8+4+5+6

матрица заводится построчно
0
3 / 3 / 3
Регистрация: 06.02.2018
Сообщений: 66
10.02.2018, 20:12  [ТС] 19
Yetty по привычке сначало написал 3 (по моему коду сначало надо было вводить n ) . Так вот и ошибся. Я принимаю свою ошибку извините.
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
10.02.2018, 20:20 20
Reflevmas, Вы своего учителя спросите, если устраивает все четыре варианта можно поместить в 4 строки
вида
Цитата Сообщение от Yetty Посмотреть сообщение
std::cout<<a[0][1]<<"+"<<a[1][1]<<"+"<<a[2][1]<<"+"<<a[1][0]<<"+"<<a[1][1]<<"+"<<a[1][2];
изменив соответствующие координаты согласно номеру задания
0
10.02.2018, 20:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.02.2018, 20:20
Помогаю со студенческими работами здесь

Как удалить строку/столбец из двумерного вектора?
Прошу помощи. До самого не доходит. Имеем вектор v . std::vector&lt;std::vector&lt;int&gt; &gt; v( N,...

Как считать каждый столбец (не строку!) в массив
Здравствуйте! Сразу говорю, я только начинаю изучать mathlab. Имеется текстовый файл in.txt, в нём...

Как удалить строку или столбец в StringGrid
подскажите пожалуйста)

Как в матрице удалить одну строку и столбец?
Как в матрице удалить одну строку и столбец?с++


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru