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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2014, 20:03   #1
Janitor93
Пользователь
 
Регистрация: 23.01.2014
Сообщений: 13
По умолчанию Сложить и умножить

Здравствуйте. Помогите пожалуйста решить задачу, но только без массивов:

Найти в каждом числе n из заданной последовательности чисел сумму цифр, находящихся на нечётных позициях, и произведение цифр, находящихся на чётных позициях (нумерация позиций идёт слева направо).

А то что то делаю, делаю и ничего. Я еще рак в этом деле. Буду очень благодарен помощи.
Janitor93 вне форума Ответить с цитированием
Старый 23.01.2014, 21:01   #2
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
Вопрос

А на каком языке программирования, должно быть решение?
Цитата:
без массивов:

Найти в каждом числе n из заданной последовательности чисел сумму цифр, находящихся на нечётных позициях, и произведение цифр, находящихся на чётных позициях (нумерация позиций идёт слева направо).
Теоретически можно использовать перечисления, но без указания языка программирования, дать конкретный ответ крайне сложно.
Цитата:
А то что то делаю, делаю и ничего.
Выложите код, тогда можно будет уже конкретно подсказать что и где не так.
На основе представленного Вами описания проблемы, увы, возможны только общие разговоры.
Streletz вне форума Ответить с цитированием
Старый 23.01.2014, 21:33   #3
Janitor93
Пользователь
 
Регистрация: 23.01.2014
Сообщений: 13
По умолчанию

На С++

Я так понял последовательность должна вводиться как то так. Только она все время вводится

Цитата:
#include <iostream>
using namespace std;

int main()
{
int n;
cout << "Vvedite kolichestvo elementov: " << endl;
int nNum = 0;
cin >> nNum;
cout << "Vvedite chislo" << endl;
int sum = 0;
for ( int i = 1; i < nNum; i+2 )
{
cin>>n;
if ( i==1, i < nNum )
sum += n;
}
cout << "Otvet1: " << sum << endl;
system ("pause");
return 0;
}
Janitor93 вне форума Ответить с цитированием
Старый 23.01.2014, 22:33   #4
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
Счастье

Вот так уже гораздо лучше.
Надо сказать, Вы в принципе на правильном пути. Однако код содержит ряд серьёзных недочётов.
Во первых:
В цикле нет приращения счётчика. Поэтому программа и зацикливается. Если не устраивает приращение на 1, то используйте +=. Хотя в данной задаче, лучше если приращение будет на 1.
Во вторых:
Если счётчик цикла стартует с 1, то используйте не <, а <=.
Итого по первым двум пунктам, после исправления получаем:
Код:
for (int i = 1; i <= nNum; i++)
В третьих:
Отсутствует проверка чётности элемента. Её можно реализовать на основе счётчика цикла. Как это сделать можно посмотреть здесь на форуме: Проверка на чётность в C++ .
В четвёртых:
По аналогии со сложением необходимо реализовать умножение. При этом складывать или умножать в зависимости от того, является ли данный элемент чётным (см. предыдущий пункт).

Первые два недочёта я по факту устранил (см. код в этом посте). Вам остаётся устранить только последние два и всё получится.

И ещё, просто на будущее:
Когда создаёте тему указывайте язык программирования и, если необходимо, компилятор (лучше всего в названии см. правила раздела).
Также будет, очень хорошо, если будет представлен код в котором возникает проблема.
Тогда получится уже не общий, а вполне предметный разговор.
Streletz вне форума Ответить с цитированием
Старый 23.01.2014, 22:38   #5
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

Вводим число.
Тут можно проверить, что число цифр достаточное, т.е. число больше, напримр, 100 или 1000.
В цикле, пока n > 0
- получаем правую цифру: m = n%10
- откусываем правую цифру: n = n / 10
- подсчитываеш шаги i ++
- проверяем i на четность: (i % 2 = 0), например
- Если четное, то p = p * m
иначе sum = sum +m
Конец цикла
Вывод сообщения.



Как-то так, ...
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 24.01.2014, 20:36   #6
Janitor93
Пользователь
 
Регистрация: 23.01.2014
Сообщений: 13
По умолчанию

Спасибо за советы, только я не понял про левую и правую цифру.
Сейчас код не работает вообще, он вообще везде требует поставить ";" где надо и не надо.
Цитата:
# include <iostream>
using namespace std;
int main()
{
int n, m, p, nNum;
cout<<"Vvedite kolichestvo chisel: " <<endl;
cin>>nNum;
cout<<"Vvedite chisla: "<<endl;
int sum=0, pr=0;
for (int i=1; i <= nNum; i++)
{
cin>>n;
if (i % 2==0, n=m, i++)
sum=n+m;
else ( n=p );
pr=n*p;
}
cout<<"Otvet1: "<<sum<<endl;
cout<<"Otvet2: "<<pr<<endl;
system("pause");
return 0;
}
в for'е запятые стояли, поэтому была такая ошибка. Исправлено.

Последний раз редактировалось Janitor93; 25.01.2014 в 00:12.
Janitor93 вне форума Ответить с цитированием
Старый 24.01.2014, 23:17   #7
Janitor93
Пользователь
 
Регистрация: 23.01.2014
Сообщений: 13
По умолчанию

В общем мне помогли замечетельные люди, вот код, может понадобиться кому для примера

Цитата:
/* Найти в каждом числе n из заданной последовательности чисел сумму цифр, находящихся на нечётных позициях,
и произведение цифр, находящихся на чётных позициях (нумерация позиций идёт слева направо).*/
# include <iostream>
using namespace std;
int main()
{
int n, nNum, sum=0, pr=1;
cout<<"Vvedite kolichestvo elementov: "<<endl;
cin>>nNum;
cout<<"Vvedite chisla: "<<endl;
for (int i=1; i <= nNum; i++)
{
cin>>n;
if(i % 2!=0)
sum +=n;
else
pr *=n;
}
cout<<"Otvet (sum) ="<<sum<<endl;
cout<<"Otvet (pr) ="<<pr<<endl;
system("pause");
return 0;
}
Всем спасибо
Janitor93 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Умножить числа в ДК Лотос1111 Помощь студентам 1 02.11.2013 12:16
Умножить 2 выражения Олег1984 Microsoft Office Access 5 23.09.2010 17:46
Не умножить 2 на 2 Карабас Помощь студентам 4 02.02.2010 07:37
умножить матрици alexz29 Общие вопросы C/C++ 1 11.12.2009 13:18
умножить столбик Betty Microsoft Office Excel 10 27.07.2009 19:10