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

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

Восстановить пароль Регистрация
 
Илья007
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 32
17.10.2015, 15:20     Подсчитать сумму элементов массива, значения которых кратны 8 #1
Добрый вечер, нужно сформировать целочисленный массив 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;
}
, я новичёк, в чём мои ошибки?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2015, 15:20     Подсчитать сумму элементов массива, значения которых кратны 8
Посмотрите здесь:

нужно найти сумму всех элементов одномерного массива которые кратны К C++
C++ Сформировать массив X из элементов массива A, значения которых не превышают среднее арифметическое массива A
C++ Найти сумму индексов тех элементов массива, которые кратны трем
C++ Вычислить сумму элементов массива, индексы которых кратны 3
Подсчитать сумму элементов массива, значения которых кратны 8 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dimension
Dimension
547 / 428 / 132
Регистрация: 08.04.2014
Сообщений: 1,693
Завершенные тесты: 1
17.10.2015, 16:06     Подсчитать сумму элементов массива, значения которых кратны 8 #2
Цитата Сообщение от Илья007 Посмотреть сообщение
if(IM[17]%8==0)
вместо 17 i надо

Добавлено через 1 минуту
Цитата Сообщение от Илья007 Посмотреть сообщение
IM[17]=rand()%(39+3);
если вы подумали ,что это строка заполнить 17 ячеек рандомом ,то вы ошибаетесь ,вы заполняете только 17 ячейку. что бы заполнить все ,нужно в цикле пробежаться по всем ячейкам
Даценд
Модератор
 Аватар для Даценд
2530 / 2445 / 1250
Регистрация: 20.04.2015
Сообщений: 4,641
17.10.2015, 16:07     Подсчитать сумму элементов массива, значения которых кратны 8 #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];
}
Dimension
Dimension
547 / 428 / 132
Регистрация: 08.04.2014
Сообщений: 1,693
Завершенные тесты: 1
17.10.2015, 16:08     Подсчитать сумму элементов массива, значения которых кратны 8 #4
и да ,17 ячейки вообще нет ,вы создали 16
Цитата Сообщение от Илья007 Посмотреть сообщение
int IM[16],
Илья007
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 32
17.10.2015, 17:02  [ТС]     Подсчитать сумму элементов массива, значения которых кратны 8 #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;
}
но при запуске выдаёт вот эту ошибку, почемуу??
Миниатюры
Подсчитать сумму элементов массива, значения которых кратны 8  
Dimension
Dimension
547 / 428 / 132
Регистрация: 08.04.2014
Сообщений: 1,693
Завершенные тесты: 1
17.10.2015, 17:12     Подсчитать сумму элементов массива, значения которых кратны 8 #6
s=0 в начале сделайте
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2015, 17:31     Подсчитать сумму элементов массива, значения которых кратны 8
Еще ссылки по теме:

Подсчитать сумму тех элементов матрицы, у которых сумма индексов нечетна C++
C++ Найти сумму элементов массива, значения которых лежат во введенном диапазоне
C++ Вывести индексы тех элементов матрицы, значения которых кратны 5

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

Или воспользуйтесь поиском по форуму:
Илья007
0 / 0 / 0
Регистрация: 17.10.2015
Сообщений: 32
17.10.2015, 17:31  [ТС]     Подсчитать сумму элементов массива, значения которых кратны 8 #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) Есть ли какие-то лишние библиотеки в представленном выше коде?

Заранее благодарен.
Yandex
Объявления
17.10.2015, 17:31     Подсчитать сумму элементов массива, значения которых кратны 8
Ответ Создать тему
Опции темы

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