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

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

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

Двумерный массив. Сумму элементов массива, расположенных между первым и последним отрицательными элементами - C++

30.05.2014, 17:20. Просмотров 553. Ответов 3
Метки нет (Все метки)

приветствую всех. нужна ваша помощь с написанием программы на с++. помогите, пожалуйста, если кому не сложно.

Определить массив A[m][n] (m и n константы), заполнить его случайными числами и выполнить следующие вычисления. Результаты выполнения задания выдать на экран и в файл.
1. Сумму элементов массива с нечетными номерами.
2. Сумму элементов массива, расположенных между первым и последним отрицательными элементами.
3. Сжать массив, удалив из него все элементы, модуль которых не превышает 1. Освободившиеся элементы массива заполнить нулями.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2014, 17:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Двумерный массив. Сумму элементов массива, расположенных между первым и последним отрицательными элементами (C++):

Массив: Найти сумму элементов массива, расположенных между первым и последним отрицательными элементами. - C++
Помогите, пожалуйста. Как решить в с++. Дан целочисленный массив размера N. Найти сумму элементов массива, расположенных между первым...

Сумму элементов массива, расположенных между первым и последним отрицательными элементами - C++
Задание: Нужно найти сумму элементов массива, расположенных между первым и последним отрицательными элементами. вот сама...

сумму элементов массива, расположенных между первым и последним отрицательными элементами - C++
4 В одномерном массиве, состоящем из 20 вещественных элементов, вычислить: сумму элементов массива, расположенных между первым и...

Сумма элементов массива, расположенных между первым и последним отрицательными элементами - C++
Помогите найти ошибку #include <iostream> #include <ctime> using namespace std; int main() { ...

Сумма элементов массива, расположенных между первым и последним отрицательными элементами - C++
12.В одномерном массиве, состоящем из n вещественных элементов, вычислить: а) сумму элементов массива с нечетными номерами; б) сумму...

Найти сумму положительных элементов, расположенных между первым и последним отрицательными элементами строки - C++
Помогите найти сумму положительных элементов, расположенных между первым и последним отрицательными элементами этой же строки. #include...

3
montkay
10 / 10 / 8
Регистрация: 19.02.2014
Сообщений: 72
30.05.2014, 20:24 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
mikhailkarmanov, программу несложно написать, только уточните подробно, что значит первое условие. Какие номера стоит считать нечетными? Ведь математически отсчёт начинается с единицы, в то время как в С++ - с нуля.

Добавлено через 38 минут
Одним из вариантов может быть следующий код:

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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#include <iostream>
#include <ctime>
#include <fstream>
#include <iomanip>
#include <string>
using namespace std;
 
const int n = 5;
const int m = 5;
void show_arr(ostream & os, int arr[n][m])
{
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
            os << setw(3) << arr[i][j];
        os << '\n';
    }
}
int main()
{
    srand(unsigned (time(0)));
    ofstream fout;
    cout << "Enter the name of file: ";
    string name;
    getline(cin, name);
    fout.open(name.c_str());
    int arr[n][m];
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            if (rand() % 2)
                arr[i][j] = rand() % 6;
            else
                arr[i][j] = -(rand() % 6);
 
    show_arr(cout, arr);
    show_arr(fout, arr);
 
    /*for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
            cout << setw(3) << arr[i][j];
        cout << '\n';
    }
    cout << '\n';*/
 
    int sum_odd(0);
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            if (i % 2 || i == 1)
                if (j % 2 || j == 1)
                    sum_odd += arr[i][j];
    cout << "\nThe sum of odd numbers is " << sum_odd << '\n';
    fout << "\nThe sum of odd numbers is " << sum_odd << '\n';
 
    int first_i, first_j, last_i, last_j;
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            if (arr[i][j] < 0)
            {
                first_i = i;
                first_j = j;
                i = n;
                j = m;
            }
 
    for (int i = n-1; i >= 0; i--)
        for (int j = m-1; j >= 0; j--)
            if (arr[i][j] < 0)
            {
                last_i = i;
                last_j = j;
                i = -1;
                j = -1;
            }
 
    int sum_between(0);
    for (int i = first_i; i < last_i + 1; i++)
        if (i == first_i)
            for (int j = first_j; j < m; j++)
                sum_between += arr[i][j];
        else if (i == last_i)
            for (int j = 0; j < last_j + 1; j++)
                sum_between += arr[i][j];
        else
            for (int j = 0; j < m; j++)
                sum_between += arr[i][j];
    cout << "The sum between first and last negative elements is " << sum_between << "\n\n";
    fout << "The sum between first and last negative elements is " << sum_between << "\n\n";
 
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            if (arr[i][j] < 0)
            {
                if (-(arr[i][j]) <= 1)
                    arr[i][j] = 0;
            }
            else
                if (arr[i][j] <= 1)
                    arr[i][j] = 0;
 
    show_arr(cout, arr);
    show_arr(fout, arr);
    /*for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
            cout << setw(3) << arr[i][j];
        cout << '\n';
    }
    cout << '\n';*/
    fout.close();
}
1
mikhailkarmanov
0 / 0 / 0
Регистрация: 10.05.2014
Сообщений: 18
01.06.2014, 23:10  [ТС] #3
montkay, мне кажется с 0, а не подскажите, почему программа не запускается? буду благодарен за помощь
http://codepad.org/gicARgBI
0
montkay
10 / 10 / 8
Регистрация: 19.02.2014
Сообщений: 72
02.06.2014, 07:48 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
В 55-й строчке нужно инициализировать переменные:

C++
1
int first_i(0), first_j(0), last_i(0), last_j(0);
1
02.06.2014, 07:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2014, 07:48
Привет! Вот еще темы с ответами:

Массив: вычислить сумму элементов массива, расположенных между первым и вторым отрицательными элементами. - C++
помогите, плиз: в одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) номер минимального элемента...

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

Найти произведение элементов массива расположенных между первым и последним отрицательными элементами - C++
Задан массив X(n) найти : -сумму нечетных элементов массива; -произведение элементов массива расположенных между первым и последним...

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


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

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

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