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

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

Восстановить пароль Регистрация
 
Прекрасная
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 96
07.04.2010, 15:25     Найти сумму и число тех элементов массива, которые попадают на заданный отрезок #1
Помогите написать программу по теме: одномерные массивы.
Найти сумму и число тех элементов заданного массива X1,X2, … ,Xn, которые попадают на заданный отрезок.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2010, 15:25     Найти сумму и число тех элементов массива, которые попадают на заданный отрезок
Посмотрите здесь:

C++ Найти сумму и число тех элементов заданного массива X1,X2, … ,Xn, которые попадают на заданный отрезок.
Найти сумму тех элементов массива, которые являются простыми числами C++
Дана целочисленная матрица A(N, M). Вычислите сумму и произведение тех её элементов, которые при делении на два дают нечётное число. C++
Одномерные массивы (Найти сумму тех элементов, которые кратны данному К) C++
Найти наименьшее среди тех элементов массива a1,…,an, которые не являются элементами массива b1,…,bn C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Demihalf
Унылый школьник
 Аватар для 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;
}
Прекрасная
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 96
07.04.2010, 16:24  [ТС]     Найти сумму и число тех элементов массива, которые попадают на заданный отрезок #3
А что за библиотека #include <ctime>?
Эта прог-а на С++? Так сложно написана...((
Demihalf
Унылый школьник
 Аватар для Demihalf
126 / 60 / 3
Регистрация: 06.11.2009
Сообщений: 354
07.04.2010, 16:52     Найти сумму и число тех элементов массива, которые попадают на заданный отрезок #4
Прекрасная, <ctime> нужна для функции time(), для инициализации генератора случайных чисел. А конкретнее, что вам сложно?
Прекрасная
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 96
08.04.2010, 12:52  [ТС]     Найти сумму и число тех элементов массива, которые попадают на заданный отрезок #5
Сама прог-а написана сложно. Попроще никак нельзя?) Я всё-таки ОЧЕНЬ начинающий программист) Я вообще не разберусь в даннной прог-е. Некоторые операторы первый раз встречаю...
Patch
2276 / 491 / 11
Регистрация: 01.04.2009
Сообщений: 2,178
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;
}
так понятнее?
Прекрасная
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 96
08.04.2010, 16:08  [ТС]     Найти сумму и число тех элементов массива, которые попадают на заданный отрезок #7
А зачем этот фрагмент
C++
1
2
3
cout << "Введенный номер элемента, больше размера массива! "<< endl;
        cin.getch();
        return 0;
?
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
08.04.2010, 16:15     Найти сумму и число тех элементов массива, которые попадают на заданный отрезок #8
Прекрасная, это завершение программы в том случае ,если b больше размерности массива
Прекрасная
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 96
08.04.2010, 17:02  [ТС]     Найти сумму и число тех элементов массива, которые попадают на заданный отрезок #9
А что значит sizeof ?
Demihalf
Унылый школьник
 Аватар для 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;
}
Patch
2276 / 491 / 11
Регистрация: 01.04.2009
Сообщений: 2,178
08.04.2010, 17:57     Найти сумму и число тех элементов массива, которые попадают на заданный отрезок #11
Цитата Сообщение от Demihalf Посмотреть сообщение
Patch, ваш код не компилится

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

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

Добавлено через 11 минут
А вообще выражение sizeof(arr) даст не число элементов массива, а его размер в байтах. Чтобы узнать число элементов массива, нужно использовать такое выражение:
C++
1
2
sizeof arr / sizeof *arr;
//Размер массива в байтах / размер одного элемента этого массива = число элементов массива
Прекрасная
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 96
09.04.2010, 13:45  [ТС]     Найти сумму и число тех элементов массива, которые попадают на заданный отрезок #14
Просто sizeof я вообще впервые встречаю, такого мы не проходили))
Прекрасная
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})? Их же вводят с клавиатуры?
Объясните, пожалуйста))
Demihalf
Унылый школьник
 Аватар для Demihalf
126 / 60 / 3
Регистрация: 06.11.2009
Сообщений: 354
10.04.2010, 19:24     Найти сумму и число тех элементов массива, которые попадают на заданный отрезок #16
Прекрасная, просто arr без sizeof написать нельзя, можно написать длину массива просто числом.

Числа в инициализации (это так называется) массива можно не указывать, просто можно задать массив несколькими спообами. В моем первом примере он генерировался случайно, здесь инициализуруется программистом, а можно сделать заполнение пользователем в цикле.
Прекрасная
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 96
10.04.2010, 19:28  [ТС]     Найти сумму и число тех элементов массива, которые попадают на заданный отрезок #17
Ой)) а как исправить последнюю программу, чтобы числа вначале программы не указывались?)
Genius Ignat
10.04.2010, 19:40
  #18

Не по теме:


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

Прекрасная
2 / 2 / 0
Регистрация: 12.02.2010
Сообщений: 96
10.04.2010, 19:43  [ТС]     Найти сумму и число тех элементов массива, которые попадают на заданный отрезок #19
Эх... Спасибо за совет, но книг у меня много... Я же учусь только))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.04.2010, 05:24     Найти сумму и число тех элементов массива, которые попадают на заданный отрезок
Еще ссылки по теме:

C++ Найти сумму индексов тех элементов массива, которые кратны трем
C++ В массив B[n] занесены натуральные числа. Найти сумму тех элементов, которые кратны данному f
Найти сумму элементов матрицы в тех столбцах, которые имеют отрицательные элементы C++

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

Или воспользуйтесь поиском по форуму:
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
11.04.2010, 05:24     Найти сумму и число тех элементов массива, которые попадают на заданный отрезок #20
Цитата Сообщение от Прекрасная Посмотреть сообщение
Ой)) а как исправить последнюю программу, чтобы числа вначале программы не указывались?)
C++
1
2
3
4
const int size=10;
int array[size];
for(int i=0; i<size; ++i)
    std::cin >> array[i];
Теперь и sizeof не нужен: размер массива хранится в константе size.
Yandex
Объявления
11.04.2010, 05:24     Найти сумму и число тех элементов массива, которые попадают на заданный отрезок
Ответ Создать тему
Опции темы

Текущее время: 12:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru