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

Произведение элементов массива, расположенных между первым и вторым нулевыми элементами - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Проверить добавление в начало массива 3 элементов http://www.cyberforum.ru/cpp-beginners/thread1151998.html
11. 1) Сформировать одномерный массив целых чисел, используя датчик случайных чисел. 2) Распечатать полученный массив. 3) Удалить 5 последних элементов массива. 4) Добавить в начало массива 3 элемента с значением M+2. 5) Распечатать полученный массив. Правильно ли считает 4) Добавить в начало массива 3 элемента с значением M+2. ? #include <iostream> #include <stdlib.h> using namespace...
C++ Параметры CreateConsoleScreenBuffer Доступ к экранного буфера консоли. Для получения списка прав доступа, см. консоли Защита буфера и права доступа., The access to the console screen buffer. For a list of access rights, see Console Buffer Security and Access Rights.. И оригинал не понятен, и перевод ещё хуже. Что значит параметр dwDesiredAccess? HANDLE WINAPI CreateConsoleScreenBuffer( _In_ DWORD dwDesiredAccess, _In_ ... http://www.cyberforum.ru/cpp-beginners/thread1151997.html
Как вывести 5 строк из файла C++
if(vibir=='1'){ char mas; FILE* file; file = fopen ("c:\\mylist.gm","r"); if(file==NULL) file = fopen ("d:\\mylist.gm","r"); if(file==NULL) {cout<<"error,wild C or D does not exist";} else {
Подскажите функцию которая считывает введенный текст на русском языке C++
Подскажите функцию, которая считывает введенный текст на русском языке чтобы потом можно было его обработать
C++ Программа запрашивает массив, в котором N целых чисел, и выводит на экран имеются ли в массиве одинаковые числа http://www.cyberforum.ru/cpp-beginners/thread1151942.html
Не могу понять почему он не выводит все совпадения а только совпадения с первым элементом. #include <iostream > using namespace std; int main() { int N; double a;
C++ Переход от одной задачи к другой в одном окне Доброго времени суток всем. Перейду к делу. У меня есть окно (Windows Forms, VS2012). Задача: Запуская программу, я должен видеть приветствие и предложение ввести свои данные для продолжения работы. Должны быть пустые поля (textbox), которые мне нужно заполнить. Заполнив, я нажимаю "ОК", введенные мною данные отображаются на протяжении работы всей программы в окне в каком-то месте (предполагаю... подробнее

Показать сообщение отдельно
ZayacV
2 / 2 / 2
Регистрация: 27.10.2013
Сообщений: 72

Произведение элементов массива, расположенных между первым и вторым нулевыми элементами - C++

20.04.2014, 08:04. Просмотров 405. Ответов 2
Метки (Все метки)

не могу понять, компилятор ругается на вторую функцию. или я что-то неправильно делаю?
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
//В одномерном массиве, состоящем из п целых элементов, вычислить:
//1) номер максимального элемента массива;
//2) произведение элементов массива, расположенных между первым и вторым нулевыми элементами.
//Преобразовать массив таким образом, чтобы в первой его половине располага¬лись элементы, стоявшие в нечетных позициях, а во второй половине — элемен¬ты, стоявшие в четных позициях.
#include <iostream>
#include <ctime>
#include <iomanip>
using namespace std;
int first(int arr[], int n)
{
    int imax = 0;
    for(int i=0; i<n; i++)
        if(arr[i] > arr[imax])
        {
            imax = i;
        }
    return imax;
}
int second(int arr[], int n)
{
    int first_null, second_null = 0;
    int proiz = 1, i;
    for (int i=0; arr[i]!=0; i++)
    {
        if (i>n)
        {
            cout<<"\nNulevix elementov net!\n";
            return;
        }
    }
    if (arr[i] == 0) first_null = i;
    int p;
    for (int p = first_null+1; arr[p] != 0; p++)
    {
        if (p>n)
        {
            cout<<"\nVtorogo nulevogo elementa net!\n";
            return;
        }
    }
    if (arr[p]==0) second_null = p;
    if ((first_null == i) && (second_null == i+1))
    {
        cout<<"\nElementov mezhdy nulevimi elementami net!\n";
        return;
    }
    first_null += 1;
    while (first_null < second_null)
    {
        proiz *= arr[first_null];
        first_null += 1;
    }
    return proiz;
}
void sort(int arr[], int n)
{
    int temp;
    for (int i=0; i<n-1; i+=2)
    {
        temp = arr[i];
        arr[i] = arr[i+1];
        arr[i+1] = temp;
    }
    for (int j=1; j<=n/2; j++)
        for (int k=0; k<((n%2==1 && k==n/2)? 2:1); k++)
        {
            temp = arr[j];
            for (int i=j+1; i<n; i++) arr[i-1] = arr[i];
            arr[n-1] = temp;
        }
}
int main()
{
    srand(time(0));
    int arr[10];
    for(int i=0; i<10; i++)
    {
        arr[i] = rand()%10-5;
        cout << setw(5) << arr[i];
    }
    cout << endl;
    cout << "Nomer max elementa: " << first(arr, 10) << endl;
    cout << "(Podschet nachinaetsya s 0)..." << endl;
    cout << "Proizvedenie mejdu 1 and 2 null: " << second(arr, 10) << endl;
    sort(arr, 10);
    cout << endl;
    cout << "Otsortirovanniy massiv:\n\n";
    for(int i=0; i<10; i++)
        cout << setw(5) << arr[i];
    cin.get();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru