Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Илья007
0 / 0 / 1
Регистрация: 17.10.2015
Сообщений: 85
#1

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

17.10.2015, 15:20. Просмотров 512. Ответов 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
Сформировать целочисленный массив X(N), элементами которого являются случайные...

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

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

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

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

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

6
Dimension
Dimension
573 / 442 / 221
Регистрация: 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
4045 / 3885 / 2573
Регистрация: 20.04.2015
Сообщений: 7,060
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
573 / 442 / 221
Регистрация: 08.04.2014
Сообщений: 1,709
Завершенные тесты: 1
17.10.2015, 16:08 #4
и да ,17 ячейки вообще нет ,вы создали 16
Цитата Сообщение от Илья007 Посмотреть сообщение
int IM[16],
1
Илья007
0 / 0 / 1
Регистрация: 17.10.2015
Сообщений: 85
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
573 / 442 / 221
Регистрация: 08.04.2014
Сообщений: 1,709
Завершенные тесты: 1
17.10.2015, 17:12 #6
s=0 в начале сделайте
1
Илья007
0 / 0 / 1
Регистрация: 17.10.2015
Сообщений: 85
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
17.10.2015, 17:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2015, 17:31
Привет! Вот еще темы с решениями:

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

Найти сумму элементов массива значения которых меньше заданного числа
Дан одномерный массив 6 элементов. Найти сумму элементов массива значения...

Найти сумму элементов массива, значения которых принадлежат заданному диапазону
Найти сумму тех элементов массива, значения которых принадлежат диапазона ....

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


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

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

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