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

Простая задача - C++

Восстановить пароль Регистрация
 
morl
0 / 0 / 0
Регистрация: 31.10.2011
Сообщений: 4
31.10.2011, 00:10     Простая задача #1
Друзья, в общем если нарушаю какие-либо правила заранее извиняюсь. В общем говорю честно я студент, и в с++ пока что в общем то 0. Прошу помощи в решении 2 несложных для вас задач
В общем вот: 1)В одномерном массиве целых чисел посчитать произведение не нулевых элементов массива. 2)В одномерном массиве целых чисел посчитать произведение четных элементов массива.

Очень надеюсь что мне кто нибудь поможет, и если не трудно разжует все используемые команды)
ps Подскажите какие нибудь книги для начинающих, только желательно качественные
Заранее благодарен)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2011, 00:10     Простая задача
Посмотрите здесь:

C++ Простая задача.
C++ Двумерный массив, простая задача.
C++ Простая задача?
простая задача C++
Простая задача с массивами C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OLLEGATOR
Linux-оид
 Аватар для OLLEGATOR
115 / 64 / 3
Регистрация: 15.02.2011
Сообщений: 353
31.10.2011, 00:12     Простая задача #2
Дейтел Харви "Как программировать на С++" && Павловская.Т.А
amor1k
Студент
 Аватар для amor1k
147 / 147 / 24
Регистрация: 18.01.2011
Сообщений: 469
31.10.2011, 00:27     Простая задача #3
1)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"rus");
    int a[10],p = 1;
    for(int i = 0; i < 10; i++)
        cin >> a[i];
    for(int i = 0; i < 10; i++)
    {
        if(a[i] != 0)
        {
            p *= a[i];
        }
    }
    cout << "произведение = " << p << endl;
    system("pause");
}
такое много раз было на форуме

Добавлено через 1 минуту
2)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;    // пространство имен
 
int main()
{
    setlocale(LC_ALL,"rus");    // русский язык в консоли
    int a[10],p = 1;  //объявление элементов
    for(int i = 0; i < 10; i++)   // цикл
        cin >> a[i];              // ввод массива
    for(int i = 0; i < 10; i++)   // еще один цикл
    {
        if(a[i] % 2 == 0)         // условие цетности
        {
            p *= a[i];            // операция умножения
        }
    }
    cout << "произведение = " << p << endl; // вывод произведения
    system("pause");        // задержка экрана
}
Добавлено через 3 минуты
Подробнее прочтите в книгах
OLLEGATOR
Linux-оид
 Аватар для OLLEGATOR
115 / 64 / 3
Регистрация: 15.02.2011
Сообщений: 353
31.10.2011, 00:28     Простая задача #4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
using namespace std;
 
int main()
{
 
    int mul=1;                      // Сюда собираем произведение из эллементов массива(начало 1 патаму-что если умножить на 0 то всё пропадёт)...
    int mas[]={3,4,6,3,0,7,0,9};    // Задали массив из 8 чисел...
 
    for(int i=0;i<8;i++){           // i<8 потому-что в массиве 8 чисел...
        if(mas[i]) mul*=mas[i];     // Если текущий эллемент не ноль то перемножаем...
    }
 
    cout<<"Произведение не нулевых чисел массива: "<<mul; // смотрим результат...
 
}
morl
0 / 0 / 0
Регистрация: 31.10.2011
Сообщений: 4
31.10.2011, 00:30  [ТС]     Простая задача #5
Благодарю, извиняюсь что не смог сам найти)
OLLEGATOR
Linux-оид
 Аватар для OLLEGATOR
115 / 64 / 3
Регистрация: 15.02.2011
Сообщений: 353
31.10.2011, 00:31     Простая задача #6
не смог
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.10.2011, 00:37     Простая задача
Еще ссылки по теме:

C++ Простая задача
простая задача на цикл C++
простая задача C++

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

Или воспользуйтесь поиском по форуму:
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
31.10.2011, 00:37     Простая задача #7
еще вариант с первой и второй задаче в одном решении
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
#include <iostream>
 
using std::cout;
using std::cin;
using std::endl;
 
int main(){
    const int size = 10;    //инициализация константной переменной. 
    int myArr[size] = {10,1,3,0,4,12,6,8,0,5}; //инициализация массива
    long multip = 1;    //инициализация переменной типа long для хранения произведения ненулевых элементов
    long multip2 = 1;  //инициализация переменной типа long для хранения произведения четных элементов
 
    for(int i = 0; i < size; ++i){ //цикл для прохождения по массиву
        if(myArr[i] != 0){      //если элемент массива не равер нулую то выполняется строчка ниже
            multip *= myArr[i];  //то же самое что multip = multip*myArr[i];
 
            if(myArr[i]%2 == 0){ //если остаток от деления на два данного элемент массива равер нулую то число четное
                multip2 *= myArr[i];  //то же самое что multip = multip*myArr[i];
            }
        }
    }
    cout << " multiplication of nonzero integers : "<< multip << endl;  //печатаем результат
    cout << " multiplication of even integers : "<< multip2 << endl;  //печатаем результат
    cin.get(); //задерживаем окно чтобы не закрлось само.
    return 0;
}
недостатки данного кода в том что если все элементы массива нулевые то результат будет 1. а это неверно.
подумайте как доработать. это не сложно. заодно будет представление как работает код.
Yandex
Объявления
31.10.2011, 00:37     Простая задача
Ответ Создать тему
Опции темы

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