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

Заменить первых 2 нулевые элементы заданного вектора соответственно на первых 2 не нулевые элементы этого вектора - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти сумму квадратов елементов,которые не больше 2 http://www.cyberforum.ru/cpp-beginners/thread900981.html
Помогите пожалуйста с решением задачи,напишите код на с++ или паскале,буду очень благодарен. Дано:a0=sqr(cos)*1; f1=sqr(-sin)*1;ak=2ak-1-ak-2; k=2,3,k,100 Найти сумму квадратов елементов,которые не больше 2.
C++ Написать функцию, обеспечивающую решение квадратного уравнения Написать функцию, обеспечивающую решение квадратного уравнения. Параметрами функции должны быть коэффициенты и корни уравнения. Значение, возвращаемое функцией, должно передавать в вызывающую программу информацию о наличии у уравнения корней: 2 – два разных корня, 1 –корни одинаковые, 0 – уравнение не имеет решения. Кроме того, функция должна проверять корректность исходных данных. Если исходные... http://www.cyberforum.ru/cpp-beginners/thread900970.html
Многомерные массивы. Найти и напечатать числа, которые встречаются в массиве более одного раза C++
Одномерный массив А состоит из 30 элементов. Найти и напечатать числа, которые встречаются в массиве более одного раза.
C++ Переписать в одномерный массив R те элементы матриц А и В, имеющие одинаковые индексы и значения
Заданные две квадратные матрицы одинакового размера А и В. Переписать в одномерный массив R те элементы матриц А и В, имеющие одинаковые индексы и значения. В полученном массиве найти первый (а) и последний (b) индексы заданного пользователем натурального числа S. Если число S встречается в массиве R не менее двух раз, изменить этим числом элемент матрицы А с индексами (b mod N; a mod N). N -...
C++ Написать функцию, которая для заданого целого числа Х вычисляет количество пар (расположенных друг за другом) нулевых битов в этом числе http://www.cyberforum.ru/cpp-beginners/thread900945.html
Помогите плиз)) Нужно срочно на завтра написать прогу на С++. Если можно с блок-схемой. Заранее спасибо.
C++ экстремумы функции Помогите написать программу для нахождения экстремумов функции. Препод хочет чтобы программа считывала с файла координаты точек через которые проходит функция и считала экстремумы. При этом,формулы по которой задана функция нет, известны лишь координаты точек и промежуток на котором надо искать экстремумы. подробнее

Показать сообщение отдельно
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4927 / 2670 / 243
Регистрация: 29.11.2010
Сообщений: 7,429
13.06.2013, 21:16     Заменить первых 2 нулевые элементы заданного вектора соответственно на первых 2 не нулевые элементы этого вектора
Можно ГСЧ из С++11 еще прикрепить

По делу: все делается в один цикл, несколько флагов, которые говорят, установлены ли значения позиций для нужных переменных. Нам нужно узнать 4 позиции. Далее обычный свап, если нет выхода за рамки

Добавлено через 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
 
void myReplace(double *arr, const int size)
{
    int first0, first, second0, second;
    first0 = first = second0 = second = -1;
 
    for (int i=0; i < size; i++)
    {
        if (arr[i] == 0)
        {
            if (first0 == -1)
                first0 = i;
            else if (second0 == -1)
                second0 = i;
        }
        else if (arr[i] != 0)
        {
            if (first == -1)
                first = i;
            else if (second == -1)
                second = i;
        }
    }
 
    if (first0 != -1 && first != -1)
        arr[first0] = arr[first];
    if (second0 != -1 && second != -1)
        arr[second0] = arr[second];
}
 
int main()
{
    const int N = 5;
    double A[N] = {1.2, 0, 4.6, 0, 1.8};
 
    std::cout << "Before:\n";
    for (int i=0; i < N; i++)
        std::cout << A[i] << " ";
    std::cout << std::endl;
 
    myReplace(A, N);
 
    std::cout << "After:\n";
    for (int i=0; i < N; i++)
        std::cout << A[i] << " ";
    std::cout << std::endl;
}
Добавлено через 23 секунды
учитывая, что ТС вроде бы что-то делал
 
Текущее время: 21:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru