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

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

Войти
Регистрация
Восстановить пароль
 
 
Прекрасная
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 96
#1

Найти сумму и число тех элементов массива, которые попадают на заданный отрезок - C++

07.04.2010, 15:25. Просмотров 960. Ответов 19
Метки нет (Все метки)

Помогите написать программу по теме: одномерные массивы.
Найти сумму и число тех элементов заданного массива X1,X2, … ,Xn, которые попадают на заданный отрезок.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2010, 15:25
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Найти сумму и число тех элементов массива, которые попадают на заданный отрезок (C++):

Найти сумму и число тех элементов заданного массива X1,X2, … ,Xn, которые попадают на заданный отрезок. - C++
1. чНайти сумму и число тех элементов заданного массива X1,X2, … ,Xn, которые попадают на заданный отрезок.

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

Найти сумму тех элементов массива, которые являются простыми числами - C++
Дан массив натуральных чисел А(N), значения элементов которого лежат в диапазоне . Найти сумму тех элементов массива, которые являются...

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

Подсчитать сумму и количество элементов массива которые попадают под ограничения - C++
Есть одномерный массив B, в нем нужно подсчитать сумму и количество элементов которые попадают под ограничения-> номер элемента (X)<=Сумаа...

Найти сумму тех элементов массива, цифровая запись которых дает четную сумму цифр, а также найти максимальный элемент массива - C++
Вот, что есть.Помогите довести до ума! #include <cstdlib> #include <iostream> #include <math.h> using namespace std; void...

19
Demihalf
Унылый школьник
126 / 60 / 3
Регистрация: 06.11.2009
Сообщений: 354
07.04.2010, 15:47 #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
#include <iostream>
#include <ctime>
 
int main() {
    setlocale(LC_ALL, "Russian");
    srand(time(0)); // Инициализируем генератор случайных чисел 
    const int n = 10; // Размер массива
    int a, b, arr[n], s = 0, k = 0;
    for (int i = 0; i < n; i++) {   // Заполняем массив случайными числами от 1 до 100
        arr[i] = rand() % 100 + 1;
        std::cout << arr[i] << ' '; // Выводим получившийся элемент массива
    };
    std::cout << std::endl;
    std::cin >> a >> b;
    if (a > b)
        a ^= b ^= a ^= b; // меняем местами переменные
    for (int i = a; i <= b; i++) {
        s += arr[i];
        k++;
    };
 
    std::cout << "Сумма = " << s << " Кол-во элементов = " << k << std::endl;
    std::system("pause");
    return 0;
}
0
Прекрасная
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 96
07.04.2010, 16:24  [ТС] #3
А что за библиотека #include <ctime>?
Эта прог-а на С++? Так сложно написана...((
0
Demihalf
Унылый школьник
126 / 60 / 3
Регистрация: 06.11.2009
Сообщений: 354
07.04.2010, 16:52 #4
Прекрасная, <ctime> нужна для функции time(), для инициализации генератора случайных чисел. А конкретнее, что вам сложно?
0
Прекрасная
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 96
08.04.2010, 12:52  [ТС] #5
Сама прог-а написана сложно. Попроще никак нельзя?) Я всё-таки ОЧЕНЬ начинающий программист) Я вообще не разберусь в даннной прог-е. Некоторые операторы первый раз встречаю...
0
Patch
2277 / 492 / 11
Регистрация: 01.04.2009
Сообщений: 2,180
08.04.2010, 14:16 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ

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
#include <iostream>
using namespace std;
 
int main() {
    setlocale(LC_ALL, "Russian"); //включаем поддержку русского языка
    int a, b;
    int arr[]={1,4,5,6,3,8,9};//делаем массив чисел
    cout << "Введите номер элемент, с которого начинается отрезок: "<< endl;
    cin >> a ;
    if(a > sizeof(arr))
   {
        cout << "Введенный номер элемента, больше размера массива! "<< endl;
        cin.getch();
        return 0;
   }
    cout << "Введите номер элемент, на котором заканчивается отрезок: "<< endl;
    cin >> b;
    if(b > sizeof(arr))
   {
        cout << "Введенный номер элемента, больше размера массива! "<< endl;
        cin.getch();
        return 0;
   }
    if (a < b)
   {
        for (int i = a; i <= b; i++)
        {
             s += arr[i];
             k++;
        };
        cout << "Сумма = " << s << " Кол-во элементов = " << k << endl;
    }
    else
    {
          cout << "Номер элемента первого элемента отрезка больше номера последнего!" << endl;
    }
  
    cin.getch();
    return 0;
}
так понятнее?
0
Прекрасная
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 96
08.04.2010, 16:08  [ТС] #7
А зачем этот фрагмент
C++
1
2
3
cout << "Введенный номер элемента, больше размера массива! "<< endl;
        cin.getch();
        return 0;
?
0
M128K145
Эксперт JavaЭксперт С++
8316 / 3536 / 143
Регистрация: 03.07.2009
Сообщений: 10,708
08.04.2010, 16:15 #8
Прекрасная, это завершение программы в том случае ,если b больше размерности массива
0
Прекрасная
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 96
08.04.2010, 17:02  [ТС] #9
А что значит sizeof ?
0
Demihalf
Унылый школьник
126 / 60 / 3
Регистрация: 06.11.2009
Сообщений: 354
08.04.2010, 17:41 #10
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Прекрасная, в данном случае это размер массива в байтах, так что код не совсем корректен. Вернее тот код вообще не работает.

Patch, ваш код не компилится: не хватает объявлений переменных, у cin нет члена getch, только get и getline. Еще не инициализированы s и k. Размер массива измеряется голым sizeof...

Добавлено через 12 минут
Исправил код Patch:
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
#include <iostream>
using namespace std;
 
int main() {
    setlocale(LC_ALL, "Russian");   // Чтобы в консоли были русские буквы
    int a, b, arr[] = {1,4,5,6,3,8,9,9,41,2};
    int s = 0, k = 0;
 
    cout << "Введите номер элемента, с которого начинается отрезок: "<< endl;
    cin >> a;
    if(a > (sizeof(arr) / sizeof(int) - 1)) // sizeof возвращает размер переменной в байтах. 
    {
        cout << "Введенный номер элемента, больше размера массива! " << endl;
        system("pause"); // Ждем нажатия клавиши
        return 0;
    }
    cout << "Введите номер элемента, которым заканчивается отрезок: "<< endl;
    cin >> b;
    if(b > (sizeof(arr) / sizeof(int) - 1)) // sizeof возвращает размер переменной в байтах. 
    {
        cout << "Введенный номер элемента, больше размера массива! " << endl;
        system("pause"); // Ждем нажатия клавиши
        return 0;
    }
    if (a < b)
    {
        for (int i = a; i <= b; i++)
        {
             s += arr[i];
             k++;
        };
        cout << "Сумма = " << s << " Кол-во элементов = " << k << endl;
    }
    else
    {
        cout << "Номер элемента первого элемента отрезка больше номера последнего!" << endl;
    }
    system("pause"); // Ждем нажатия клавиши
    return 0;
}
1
Patch
2277 / 492 / 11
Регистрация: 01.04.2009
Сообщений: 2,180
08.04.2010, 17:57 #11
Цитата Сообщение от Demihalf Посмотреть сообщение
Patch, ваш код не компилится

ясное дело.
это была попытка на скорую руку написать что-то понятное автору.
ну, не знает мадемуазель Прекрасная команду system("pause")...

на самом деле, использовать можно getch() или cin.get() а у меня - такой вот гибрид.
0
Прекрасная
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 96
09.04.2010, 13:18  [ТС] #12
Так слово "sizeof" вообще обязательно? Можно без него?
0
Nameless One
Эксперт С++
5783 / 3432 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
09.04.2010, 13:39 #13
Прекрасная, а чем оно Вас так смущает?
В принципе, в примере Patch'а можно без него обойтись, так как размер массива известен заранее.

Добавлено через 11 минут
А вообще выражение sizeof(arr) даст не число элементов массива, а его размер в байтах. Чтобы узнать число элементов массива, нужно использовать такое выражение:
C++
1
2
sizeof arr / sizeof *arr;
//Размер массива в байтах / размер одного элемента этого массива = число элементов массива
0
Прекрасная
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 96
09.04.2010, 13:45  [ТС] #14
Просто sizeof я вообще впервые встречаю, такого мы не проходили))
0
Прекрасная
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 96
10.04.2010, 19:18  [ТС] #15
Так можно написать просто arr без sizeof?

Добавлено через 2 минуты
И ещё вопрос))
А зачем в массиве указывать числа (arr[] = {1,4,5,6,3,8,9,9,41,2})? Их же вводят с клавиатуры?
Объясните, пожалуйста))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2010, 19:18
Привет! Вот еще темы с ответами:

Определить количество и сумму тех элементов массива, которые делятся на 5 и на 7 - C++
Дан массив из 20 чисел. Вычислить и вывести кол-во и сумму тех элементов,которые делятся на 5 и на 7. Напишите алгоритм...

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

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

Найти сумму тех элементов, которые кратны заданному К - C++
Помогите с задачей. В массив A занесены натуральные числа. Найти сумму тех элементов, которые кратны данному К.


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

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

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