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

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

Войти
Регистрация
Восстановить пароль
 
Илья007
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 34
#1

Подсчитать сумму элементов массива, значения которых кратны 8 - C++

17.10.2015, 15:20. Просмотров 247. Ответов 6
Метки нет (Все метки)

Добрый вечер, нужно сформировать целочисленный массив IM (17), элементами которого являются случайные числа из диапазона [3 .. 42]. Подсчитать сумму элементов массива, значения которых кратны 8.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<cstdlib>
#include<math.h>
#include <time.h>
#include<iostream>
using namespace std;
int main()
{
int IM[16],i,S;
S=0;
IM[17]=rand()%(39+3);
for(i=0;i<17;i++)
if(IM[17]%8==0)
    S+=IM[i];
    cout<<S;
return 1;
}
, я новичёк, в чём мои ошибки?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2015, 15:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подсчитать сумму элементов массива, значения которых кратны 8 (C++):

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

Подсчитать сумму элементов массива, значения которых кратны 8 - C++
Сформировать целочисленный массив IM (N), элементами которого являются случайные числа из диапазона . Подсчитать сумму элементов массива,...

Подсчитать сумму элементов массива, значения которых кратны 8 - C++
Сформировать целочисленный массив X(N), элементами которого являются случайные числа из диапазона . Подсчитать сумму элементов этого...

Найти сумму отрицательных элементов массива, значения которых кратны 5 - C++
Выполните следующие задания на обработку элементов одномерного массива: Дан массив целых чисел из n элементов. Найти сумму отрицательных...

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

Подсчет произведения элементов матрицы, значения которых кратны 3 - C++
Составить программу для подсчета произведение ячеек двумерной целочисленной таблицы В, что складывается с 5 строк и 4 столбцов, которые...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Dimension
Dimension
556 / 437 / 135
Регистрация: 08.04.2014
Сообщений: 1,709
Завершенные тесты: 1
17.10.2015, 16:06 #2
Цитата Сообщение от Илья007 Посмотреть сообщение
if(IM[17]%8==0)
вместо 17 i надо

Добавлено через 1 минуту
Цитата Сообщение от Илья007 Посмотреть сообщение
IM[17]=rand()%(39+3);
если вы подумали ,что это строка заполнить 17 ячеек рандомом ,то вы ошибаетесь ,вы заполняете только 17 ячейку. что бы заполнить все ,нужно в цикле пробежаться по всем ячейкам
1
Даценд
Модератор
Эксперт .NET
3289 / 3203 / 1634
Регистрация: 20.04.2015
Сообщений: 5,875
17.10.2015, 16:07 #3
C++
1
2
3
4
5
6
for(i=0;i<17;i++)
{
   IM[i]=rand()%(39+3);
   f(IM[i]%8==0)
      S+=IM[i];
}
1
Dimension
Dimension
556 / 437 / 135
Регистрация: 08.04.2014
Сообщений: 1,709
Завершенные тесты: 1
17.10.2015, 16:08 #4
и да ,17 ячейки вообще нет ,вы создали 16
Цитата Сообщение от Илья007 Посмотреть сообщение
int IM[16],
1
Илья007
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 34
17.10.2015, 17:02  [ТС] #5
Спасибо вам большое, увидел ошибки, исправил их. Получилось так:
#include<cstdlib>
#include<math.h>
#include <time.h>
#include<iostream>
using namespace std;
int main()
{
const int N = 17;
int IM[N];
int i,S;
for(i=0;i<17;i++)
{
IM[i]=rand()%(39+3);
if(IM[i]%8==0)
S+=IM[i];
}
cout<<S;
return 1;
}
но при запуске выдаёт вот эту ошибку, почемуу??
0
Миниатюры
Подсчитать сумму элементов массива, значения которых кратны 8  
Dimension
Dimension
556 / 437 / 135
Регистрация: 08.04.2014
Сообщений: 1,709
Завершенные тесты: 1
17.10.2015, 17:12 #6
s=0 в начале сделайте
1
Илья007
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 34
17.10.2015, 17:31  [ТС] #7
Хорошо, понял. Заработало!
Можно еще 2 вопроса:
1) так как массив рандомный, каждый раз должны выводиться разные знчения. Однако, как я прочитал, для этого необходимо писать такую строчку: srand(time(NULL))..
Я ее пишу:

#include<cstdlib>
#include<math.h>
#include <time.h>
#include<iostream>
using namespace std;
int main()
{
const int N = 17;
int IM[N];
int i,S;
srand(time(NULL));
for(i=0;i<17;i++)
{
IM[i]=rand()%39+3;
cout<<IM[i]<<endl;
if(IM[i]%8==0)
S=0;
S+=IM[i];
}
//cout<<IM[i]<<endl;
cout<<S;
return 1;
}

Выдается предупреждение: warning C4244: аргумент: преобразование 'time_t' в 'unsigned int', возможна потеря данных. Полагаю, надо где-то писать int, вот только где?

2) Есть ли какие-то лишние библиотеки в представленном выше коде?

Заранее благодарен.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2015, 17:31
Привет! Вот еще темы с ответами:

Вывести индексы тех элементов матрицы, значения которых кратны 5 - C++
Создать двумерный массив размером n на m Вывести индексы тех элементов, значение которых кратны 5

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

Найти сумму элементов массива значения которых меньше заданного числа - C++
Дан одномерный массив 6 элементов. Найти сумму элементов массива значения которых меньше 0.25 Массив x-{3.5,-6.3,2.1,0.1,5.1,-2.1}

Определить в матрице сумму элементов, номера строк которых кратны 3, а столбцов — 4 - C++
Помогите написать программу: Данные действительные числа а и b (а&gt; b). Сформировать матрицу XY , элементами которой являются...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
17.10.2015, 17:31
Ответ Создать тему
Опции темы

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