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

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

Войти
Регистрация
Восстановить пароль
 
uemaka
0 / 0 / 0
Регистрация: 02.09.2013
Сообщений: 33
#1

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

26.02.2014, 16:05. Просмотров 284. Ответов 5
Метки нет (Все метки)

Проблема с заданием. Дан одномерный массив. Узнать, есть ли среди них элементы с нечетными номерами, которые кратны 17, и если есть, посчитать их сумму.
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
bool fun(int* a, int n, int& z)
{
 
bool bl = false;
for(int i=1;i<n;i+=2)
if (a[i]%17 == 0)
{
bl = true;
z += a[i];
}
if(bl) return true;
return false;
}
int main()
{
    const int n = 10;
    int a[n];
    int z= 0;
    for (int i = 0; i<n; i++)
    {
        cin >> a[i];
    }
    cout << fun (a,n,z);
    return 0;
}
но прога выдает то 0 то 1 где я сделал ошибку?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2014, 16:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Узнать, есть ли среди элементов массива элементы с нечетными номерами, которые кратны 17, и если есть, посчитать их сумму (C++):

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

Если среди элементов массива есть хотя бы одно число больше 100, то все элементы массива поделить на 100. - C++
Дан массив действительных чисел a1,...,an. Если среди элементов массива есть хотя бы одно число больше 100, то все элементы массива...

Есть ли среди элементов массива простые числа? Если да, то вывести номера этих элементов - C++
Задан целочисленный массив размерности N. Есть ли среди элементов массива простые числа? Если да, то вывести номера этих элементов.

Есть ли среди элементов заданного массива простые числа? Если да, то вывести номера этих элементов - C++
Задан целочисленный массив размерности N. Есть ли среди элементов массива простые числа? Если да, то вывести номера этих элементов.

Найти в массиве сумму максимума среди чисел с нечетными номерами и минимума среди чисел с четными номерами - C++
Найти сумму наибольшего значения среди чисел с нечетными номерами и наименьшего значения среди чисел с четными номерами тест ...

Определить, есть ли среди элементов массива такие, которые равны сумме двух других - C++
Дано натуральное число n и целые числа a(1), a(2), ..a(n) (n&lt;100). Определить, есть ли среди этих чисел такие, которые равны сумме двух...

5
THE--MASTER
Заблокирован
26.02.2014, 16:08 #2
Цитата Сообщение от uemaka Посмотреть сообщение
но прога выдает то 0 то 1 где я сделал ошибку?
ты выводишь тут cout << fun (a,n,z); возвращаемое функцией значение, оно у тебя типа BOOL, что есть цифра 1 или 0, тебе наверное надо Z выводить
1
Extrim88
50 / 50 / 11
Регистрация: 08.02.2013
Сообщений: 189
26.02.2014, 16:12 #3
Цитата Сообщение от uemaka Посмотреть сообщение
cout << fun (a,n,z);
Функция fun() возвращает значение типа bool. При передаче этого значения в поток вывода, true преобразуется в 1, false - в 0.
1
uemaka
0 / 0 / 0
Регистрация: 02.09.2013
Сообщений: 33
26.02.2014, 16:36  [ТС] #4
То есть когда я ввожу числа и если в нечетных номерах есть числа кратные 17 функция возвращает 1 если нет кратных 17 то 0,так? Но как сделать чтоб она выводила на экран сумму?

Добавлено через 10 минут
Хотя вроде так
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
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
bool fun(int *c, int n,int &z)
{
for(int i=0;i<n;i++)
cin >> *(c+i);
for(int i=0;i<n;i+=2)
{
 
if ((*(c+i))%17==0)
{
z+=*(c+i);
}
 
}
if(sum) return true;
else return false;
}
 
int main()
{
const int n=10;
int c[n];
int sum = 0;
if (fun(c,n,z)) cout <<z;
else cout <<"Elementov krat 17 net";
return 0;
}
Теперь вроде выводит на экран сумму но я не уверен правильно ли я использовал функ bool?
0
Extrim88
50 / 50 / 11
Регистрация: 08.02.2013
Сообщений: 189
26.02.2014, 16:46 #5
Цитата Сообщение от uemaka Посмотреть сообщение
if (fun(c,n,z)) cout <<z;
Где объявление переменной z?

Добавлено через 24 секунды
Строка 28
0
uemaka
0 / 0 / 0
Регистрация: 02.09.2013
Сообщений: 33
26.02.2014, 17:33  [ТС] #6
Ой точно основную функции просто вставил и переправлял пропустил.А в прнципе правильно написал или нет?
0
26.02.2014, 17:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.02.2014, 17:33
Привет! Вот еще темы с ответами:

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

Вычислить сумму элементов массива с нечетными номерами - C++
Вычислить: 1)сумму элементов массива с нечетными номерами 2)сумму элементов массива, расположенных между первым и последним...

Вычислить сумму элементов массива с нечетными номерами - C++
В одномерном массиве, состоящем из n вещественных элементов, вычислить: сумму элементов массива с нечетными номерами; записать элементы...

Найти сумму элементов массива с нечетными номерами - C++
Просьба помочь/дописать программу под условие задания (смотреть пр. файл) :(( Задание: H - сумма элементов массива с нечетными...


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

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

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