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

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

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

Задача на двумерные массивы - C++

17.03.2014, 19:33. Просмотров 227. Ответов 3
Метки нет (Все метки)

Найти среднее арифметическое положительных элементов каждого столбца
Есть почти готовое решение, но, оно только правильное когда элементы столбцов больше 0 (>0)
C++ (Qt)
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
46
47
48
49
50
51
52
53
54
55
#include <iostream>
#include <stdio.h>
#include <conio.h>
using namespace std;
 
    int **a, m, n;
    int sum;
    void Input_A();
    void Serednye_A();
 
 
 
int main()
{
    setlocale (LC_ALL, "Russian");
 
    Input_A();
    Serednye_A();
 
getch();
return 0;
}
 
 
void Input_A() {
 
    
    cout << "ÂâåäiГІГј ГЄiëüêiГ±ГІГј ñòîâáöiГў m= ";
    cin >> m;
    cout << "ÂâåäiГІГј ГЄiëüêiГ±ГІГј Г«iГ*iéîê n= ";
    cin >> n;
    int sum = 0;
    a = new int*[m];
    for(int i=0; i<m; i++) {
        a[i] = new int [n];
    }
    for (int i = 0; i<m; i++){
        for (int j = 0; j < n; j++) {
            cout << "a[" << i << "][" << j << "]: ";
            cin >> *(*(a+i)+j);
        }
    }
}
 
void Serednye_A() {
    for (int i = 0; i<m; i++){
        sum = 0;
        for (int j = 0; j < n; j++) {
            if (a[i][j] > 0)
                sum += *(*(a+i)+j);
        }
        cout << "ÑåðåäГ*Вє Г*ðèôìåòè÷Г*ГҐ " << i+1 <<"-ГЈГ® ñòîâáöÿ= "<< sum / n<< endl;
        
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2014, 19:33     Задача на двумерные массивы
Посмотрите здесь:

двумерные массивы(задача) - C++
прошу помочь с задачей.:):):)вот текст задачи Дана целочисленная прямоугольная матрица. Определить: 1) количество строк,...

Задача на двумерные массивы... - C++
Как найти сумму цифр нижнего правого треугольника матрицы без диагонали??? например матрица 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3...

Задача на двумерные массивы - C++
Заменить элементы главной диагонали матрицы целых чисел 5х5 суммами элементов столбцов. void __fastcall TForm1::Button1Click(TObject...

Задача по теме Двумерные массивы - C++
Помогите выбрать правильный вариант в этой задаче. Заранее спасибо. 1. Задачи необходимо переписывать в текст сообщения. 2. Язык...

Двумерные массивы.Задача на формирование массивов - C++
Задана квадратная матрица. Получить транспонированную матрицу.

Довольно Трудная задача(Двумерные массивы) - C++
Вот попалась такая задача: Найти седловую точку целочисленной матрицы с числом строк не более 12, числом столбцов не более 20....

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fishec
119 / 119 / 30
Регистрация: 07.09.2013
Сообщений: 338
17.03.2014, 19:40     Задача на двумерные массивы #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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <conio.h>
using namespace std;
 
int **a, m, n;
int sum;
void Input_A();
void Serednye_A();
 
 
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    Input_A();
    Serednye_A();
 
    _getch();
    return 0;
}
 
 
void Input_A() {
 
 
    cout << "Введiть кiлькiсть стовбцiв m= ";
    cin >> m;
    cout << "Введiть кiлькiсть лiнiйок n= ";
    cin >> n;
    int sum = 0;
    a = new int*[m];
    for (int i = 0; i<m; i++) {
        a[i] = new int[n];
    }
    for (int i = 0; i<m; i++){
        for (int j = 0; j < n; j++) {
            cout << "a[" << i << "][" << j << "]: ";
            cin >> *(*(a + i) + j);
        }
    }
}
 
void Serednye_A() {
    for (int i = 0; i<m; i++){
        sum = 0;
        int count = 0;
        for (int j = 0; j < n; j++) {
            if (a[i][j] > 0){
                sum += *(*(a + i) + j);
                count++;
            }
        }
        if (count > 0) 
            cout << "Середнє арифметичне " << i + 1 << "-го стовбця= " << sum / double(count) << endl;
        else cout <<"В "<< i + 1 << "-ом столбце нет положительных элементов " << endl;
 
    }
}
recoder
130 / 130 / 28
Регистрация: 13.09.2013
Сообщений: 260
Записей в блоге: 2
17.03.2014, 19:40     Задача на двумерные массивы #3
Найти среднее арифметическое положительных элементов каждого столбца.
Есть почти готовое решение, но, оно только правильное когда элементы столбцов больше 0.
Меньше 0, вроде не положительные.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.03.2014, 19:49     Задача на двумерные массивы
Еще ссылки по теме:

Задача на двумерные массивы (найти ошибку) - C++
На строчке где, по-идее, программа должна делать замену Dev-C++ пишет ошибку. Помогите разобраться, пожалуйста. /* Дана...

с++ двумерные массивы - C++
с++ двумерные массивы, можете помочь написать код пожалуйста №1 Заполнить матрицу А(9,9), от левого верхнего угла по диагонали: вправо -...

Двумерные массивы - C++
Помогите люди добрые:) Дана целочисленная прямоугольная матрица, определить: 1) Кол-во отрицательных эл-тов тех строк, которые содержат...

Циклы и двумерные массивы - C++
1. Цикл For... Среди всех n-значных чисел (n = 1,2,3,4) указать те, сумма цифр которых равна данному числу k. 2. двумерные массивы ...


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

Или воспользуйтесь поиском по форуму:
fishec
119 / 119 / 30
Регистрация: 07.09.2013
Сообщений: 338
17.03.2014, 19:49     Задача на двумерные массивы #4
recoder, когда все элементы матрицы положительные, решение правильное. А когда хотя бы 1 отрицательный, то уже не верно.

Добавлено через 1 минуту
Цитата Сообщение от ferdas Посмотреть сообщение
int **a, m, n; int sum;
Можно обойтись без глобальных переменных:
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
46
47
48
49
50
51
52
53
54
#include <iostream>
#include <stdio.h>
#include <conio.h>
 
using namespace std;
void Input_A(int**&,int,int);
void Serednye_A(int**,int,int);
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int **a, m, n;
    cout << "Введiть кiлькiсть стовбцiв m= ";
    cin >> m;
    cout << "Введiть кiлькiсть лiнiйок n= ";
    cin >> n;
    Input_A(a,m,n);
    Serednye_A(a,m,n);
 
    _getch();
    return 0;
}
 
 
void Input_A(int**& a,int m, int n) {
    int sum = 0;
    a = new int*[m];
    for (int i = 0; i<m; i++) {
        a[i] = new int[n];
    }
    for (int i = 0; i<m; i++){
        for (int j = 0; j < n; j++) {
            cout << "a[" << i << "][" << j << "]: ";
            cin >> a[i][j];
        }
    }
}
 
void Serednye_A(int **a,int m,int n) {
    for (int i = 0; i<m; i++){
        int sum = 0;
        int count = 0;
        for (int j = 0; j < n; j++) {
            if (a[i][j] > 0){
                sum += a[i][j];
                count++;
            }
        }
        if (count > 0) 
            cout << "Середнє арифметичне " << i + 1 << "-го стовбця= " << sum / double(count) << endl;
        else cout <<"В "<< i + 1 << "-ом столбце нет положительных элеметов " << endl;
 
    }
}
Добавлено через 37 секунд
Цитата Сообщение от ferdas Посмотреть сообщение
*(*(a+i)+j)
Это можно заменить на a[i][j]
Yandex
Объявления
17.03.2014, 19:49     Задача на двумерные массивы
Ответ Создать тему
Опции темы

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