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

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

Восстановить пароль Регистрация
 
uemaka
0 / 0 / 0
Регистрация: 02.09.2013
Сообщений: 33
26.02.2014, 16:05     Узнать, есть ли среди элементов массива элементы с нечетными номерами, которые кратны 17, и если есть, посчитать их сумму #1
Проблема с заданием. Дан одномерный массив. Узнать, есть ли среди них элементы с нечетными номерами, которые кратны 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 где я сделал ошибку?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2014, 16:05     Узнать, есть ли среди элементов массива элементы с нечетными номерами, которые кратны 17, и если есть, посчитать их сумму
Посмотрите здесь:

Есть ли среди элементов массива простые числа? Если да, то вывести номера этих элементов C++
Если среди элементов массива есть хотя бы одно число больше 100, то все элементы массива поделить на 100. C++
C++ Определить, есть ли среди элементов массива такие, которые равны сумме двух других
C++ Дан массив действительных чисел. Найти сумму элементов с четными номерами и произведение элементов с нечетными номерами
В одномерном массиве, состоящем из n вещественных элементов, вычислить сумму элементов массива с нечетными номерами. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
THE--MASTER
Заблокирован
26.02.2014, 16:08     Узнать, есть ли среди элементов массива элементы с нечетными номерами, которые кратны 17, и если есть, посчитать их сумму #2
Цитата Сообщение от uemaka Посмотреть сообщение
но прога выдает то 0 то 1 где я сделал ошибку?
ты выводишь тут cout << fun (a,n,z); возвращаемое функцией значение, оно у тебя типа BOOL, что есть цифра 1 или 0, тебе наверное надо Z выводить
Extrim88
 Аватар для Extrim88
50 / 50 / 11
Регистрация: 08.02.2013
Сообщений: 189
26.02.2014, 16:12     Узнать, есть ли среди элементов массива элементы с нечетными номерами, которые кратны 17, и если есть, посчитать их сумму #3
Цитата Сообщение от uemaka Посмотреть сообщение
cout << fun (a,n,z);
Функция fun() возвращает значение типа bool. При передаче этого значения в поток вывода, true преобразуется в 1, false - в 0.
uemaka
0 / 0 / 0
Регистрация: 02.09.2013
Сообщений: 33
26.02.2014, 16:36  [ТС]     Узнать, есть ли среди элементов массива элементы с нечетными номерами, которые кратны 17, и если есть, посчитать их сумму #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?
Extrim88
 Аватар для Extrim88
50 / 50 / 11
Регистрация: 08.02.2013
Сообщений: 189
26.02.2014, 16:46     Узнать, есть ли среди элементов массива элементы с нечетными номерами, которые кратны 17, и если есть, посчитать их сумму #5
Цитата Сообщение от uemaka Посмотреть сообщение
if (fun(c,n,z)) cout <<z;
Где объявление переменной z?

Добавлено через 24 секунды
Строка 28
uemaka
0 / 0 / 0
Регистрация: 02.09.2013
Сообщений: 33
26.02.2014, 17:33  [ТС]     Узнать, есть ли среди элементов массива элементы с нечетными номерами, которые кратны 17, и если есть, посчитать их сумму #6
Ой точно основную функции просто вставил и переправлял пропустил.А в прнципе правильно написал или нет?
Yandex
Объявления
26.02.2014, 17:33     Узнать, есть ли среди элементов массива элементы с нечетными номерами, которые кратны 17, и если есть, посчитать их сумму
Ответ Создать тему
Опции темы

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