Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2013, 22:37   #1
Nepomeha
Новичок
Джуниор
 
Регистрация: 26.12.2013
Сообщений: 6
Сообщение Масивы

Задание. Cклаcты программу вычисления следующих величин по вариантам, если элементы массива определяются по формуле a[i+1]=(37*a[i]+3)%64;. Значение a0 равна номеру варианта; i изменяется от 0 до 18.
Величины, которые нужно вычислить
Суммы элементов массива а, значения которых нечетные числа. Номер моего варианта 13.

Я пишу такой код, но в суме не получается 93. Что у меня не так? Напишите пожалуйста правильный программный код :
Код:
#include <iostream>
#include <math.h>
#include <windows.h>
using namespace std;
int main()
{
int i,s,n=18;
int a[18];
cout<<"input array a["<<n<<"]:\n";
a[0]=13;
for(i=0; i<=n-2; i++)
a[i+1]=(37*a[i]+3)%64;
for(i=0; i<=n-1; i++)
cout<<a[i]<<" ";
cout<<endl;
cout<<"\n Array after the selection of even numbers"<<endl;
for(i=0; i<18; i+=1)
cout<<a[i]<<" ";
s+=a[i];
cout<<"\n The sum of the array elements and whose values are even numbers="<<s<<endl;
}

Последний раз редактировалось Stilet; 26.12.2013 в 23:37.
Nepomeha вне форума Ответить с цитированием
Старый 26.12.2013, 22:55   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Судя по коду, у вас это
Код:
s+=a[i];
выполняется всего 1 раз, только при i =17.
И чему было равно s до этого?
И где проверка на нечетность?

Последний раз редактировалось type_Oleg; 26.12.2013 в 23:00.
type_Oleg вне форума Ответить с цитированием
Старый 26.12.2013, 23:56   #3
Nepomeha
Новичок
Джуниор
 
Регистрация: 26.12.2013
Сообщений: 6
По умолчанию

Я в программировании еще не селен... Можете пожалуйста исправить эти ошибки.
Nepomeha вне форума Ответить с цитированием
Старый 27.12.2013, 01:17   #4
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

А почему 93 ?
Сумма элементов массива а, значения которых нечетные числа получается 292.
Сумма индексов элементов массива а, значения которых нечетные числа получается 90.
Проверьте:
0 13
1 36
2 55
3 54
4 17
5 56
6 27
7 42
8 21
9 12
10 63
11 30
12 25
13 32
14 35
15 18
16 29
17 52
18 7
type_Oleg вне форума Ответить с цитированием
Старый 27.12.2013, 03:36   #5
Nepomeha
Новичок
Джуниор
 
Регистрация: 26.12.2013
Сообщений: 6
По умолчанию

Я сделал так но у меня считает почему то только парные, а нужно не парные.
Код:
#include <iostream>
#include <math.h>
#include <windows.h>
using namespace std;
int main()
{
int i,s,n=18;
int a[18];
cout<<"input array a["<<n<<"]:\n";
a[0]=13;
for(i=0; i<=n-2; i++)
a[i+1]=(37*a[i]+3)%64;
for(i=0; i<=n-1; i++)
cout<<a[i]<<" ";
cout<<endl;
cout<<"\n Array after the selection of even numbers"<<endl;
s=0;
for(i=0; i<18; i+=1)
if ( i & 1 )
{
    cout<<a[i]<<" ";
    s+=a[i];
}
else
cout<<"\nThe sum of the elements of the array and whose values are not even numbers="<<s<<endl;
}
Nepomeha вне форума Ответить с цитированием
Старый 27.12.2013, 03:52   #6
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

В задании : значения которых нечетные числа
значения, а не индексы, не номера.
Кстати, в массиве - 19 элементов (от 0-го од 18-го), а не 18.

Условие " если число k нечетное " можно сделать так
Код:
if(k%2)
Я кстати, так и не понял , сумма чего должна быть 93 ?
type_Oleg вне форума Ответить с цитированием
Старый 27.12.2013, 04:09   #7
Nepomeha
Новичок
Джуниор
 
Регистрация: 26.12.2013
Сообщений: 6
По умолчанию

Сума нечетных значений. Я просто не мог понять почему сума 93, а при подсчете значений выходит намного больше. Но уже понял свою ошибку.
Цитата:
Сообщение от type_Oleg Посмотреть сообщение
Условие " если число k нечетное " можно сделать так
Код:
if(k%2)
Это нужно задать переменную k? И где именно мне написать условие?
Nepomeha вне форума Ответить с цитированием
Старый 27.12.2013, 04:21   #8
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Я как пример написал. Что у вас надо проверять на нечетность? a[i] ?
type_Oleg вне форума Ответить с цитированием
Старый 27.12.2013, 04:22   #9
Nepomeha
Новичок
Джуниор
 
Регистрация: 26.12.2013
Сообщений: 6
По умолчанию

Да, нужно проверить a[i].
Nepomeha вне форума Ответить с цитированием
Старый 27.12.2013, 04:26   #10
Nepomeha
Новичок
Джуниор
 
Регистрация: 26.12.2013
Сообщений: 6
По умолчанию

Я написал if ( a[i] & 1 )
и получилось так:

Это верно?
Nepomeha вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Масивы vasya9 Помощь студентам 0 07.11.2011 01:22
масивы dimondru Общие вопросы C/C++ 1 30.05.2011 23:10
Масивы --Deemon-- Помощь студентам 2 21.02.2011 19:43
масивы с++ Smile.id Помощь студентам 1 25.11.2009 15:09
С++ масивы Миха Шебалкин Помощь студентам 0 03.06.2009 22:33