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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
maximuss
0 / 0 / 0
Регистрация: 24.04.2012
Сообщений: 148
#1

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

17.01.2013, 23:20. Просмотров 278. Ответов 3
Метки нет (Все метки)

Дано вектор В, состоящий из N действительных чисел. Заменить первые два нулевые элементы заданного вектора В на два первых НЕ нулевые элементы этого вектора.
Напечатать заданный и образован вектор.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2013, 23:20     Заменить первые два нулевые элементы заданного вектора В на два первых НЕ нулевые элементы этого вектора
Посмотрите здесь:

Создать два новых массива, в один из которых поместить положительные элементы массива, а в другой отрицательные и нулевые элементы - C++
Написать программу , которая вводит с клавиатуры массив из N вещественных чисел , создает два новых массива , в один из которых помещает...

Одномерный массив. Найти наименьший элемент, все нулевые элементы заменить значением этого элемента - C++
Ребят,помогите,пожалуйста, с массивом,вот задание: В массиве найти наименьший элемент.Вывести на дисплей полученное значение.После...

Нулевые элементы массива заменить на единицы - C++
В одномерном динамическом массиве: 1 шаг. преобразование исходного массива . Нулевые элементы заменить на единицы. 2 шаг. Заполнение...

Заменить нулевые элементы массива суммой элементов - C++
Заменить нулевые элементы массива суммой элементов, значения которых кратны некоторому целому значению x (x, как и массив, вводится с...

Все нулевые элементы матрицы заменить на единицу - C++
Условие: Все нулевые элементы заменить на единицу! Во второй строке у меня там изменённый масив но там выводит нули одни! Почему? ...

Найти первый и последний нулевые элементы заданного массива и вывести их индексы - C++
В массиве несколько нулевых элементов. Найти первый и последний нулевые элементы. Вывести их индексы. Как это сделать?

Нулевые элементы массива заменить средним арифметическим всех элементов - C++
Задание: Создать числовой массив A. Каждый элемент, равный нулю, заменить средним арифметическим всех элементов. Вывести на экран...

Ввести массив и заменить все нулевые элементы последним элементом массива - C++
Прошу помочь, искал на форуме, но подходящего не нашел. Мне нужно ввести массив и заменить все нулевые элементы последним элементом массива.

В матрице A(m,n) все не нулевые элементы заменить обратными по величине и противоположными по знаку - C++
Вот задание: В матрице A(m,n) все не нулевые элементы заменить обратными по величине и противоположными по знаку. #include <iostream> ...

Необходимо заменить нулевые элементы матрицы вещественных чисел размерностью 5 на 5 ее максимальным элементом - C++
Помогите пожалуйста сделать программу на Borland C++ 6. Заменить нулевые элементы матрицы вещественных чисел размерностью 5x5 ее...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TrueBit
95 / 95 / 12
Регистрация: 19.11.2012
Сообщений: 195
17.01.2013, 23:56     Заменить первые два нулевые элементы заданного вектора В на два первых НЕ нулевые элементы этого вектора #2
Ну вот, но это нехороший код(требует доработки) сразу говорю. Если программа ненайдет 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
#include<iostream> 
using namespace std; 
 
int main()
{
    setlocale(LC_ALL,"rus");
    int index1=-1;
    int index2=-1;
    int B[]={ 7,0,2,5,0,9,3,10,26,0,17,54 };
    for(int count=0; count<(sizeof(B)/sizeof(int));count++)
        cout << B[count] << " ";
    cout << endl;
    for(int count=0;count<(sizeof(B)/sizeof(int));count++)
        if(B[count]==0)
            if(index1==-1)
                index1=count;
            else {
            index2=count;
            break;
        }
    for(int count=0;count<(sizeof(B)/sizeof(int));count++)
        if(B[count]!=0)
            if(B[index1]==0) {
                B[index1]=B[count];
            } else if(count!=index1){
                B[index2]=B[count];
                break;
            }
    for(int count=0; count<(sizeof(B)/sizeof(int));count++)
        cout << B[count] << " ";
    cin.get();
}
vua72
415 / 415 / 85
Регистрация: 28.11.2010
Сообщений: 1,183
Завершенные тесты: 1
18.01.2013, 00:10     Заменить первые два нулевые элементы заданного вектора В на два первых НЕ нулевые элементы этого вектора #3
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
#include <stdio.h>
#include <stdlib.h>
int main() {
 
    int n = 0, i = 0;
    int *B, T[2][2];
    int count0 = 0, count1 = 0;
    printf("n? ");
    do {
        scanf("%d", &n);
    } while (n <= 0);
    B = calloc(n, sizeof(n));
    while (i < n) {
        B[i] = rand() %7 -3;
        printf("%4d", B[i]); // !!
        i++;
    }
    printf("\n");
    i = 0;
    while (i < n) {
        if (count0 == 2 && count1 == 2)
            break;
        if (B[i] == 0 && count0 < 2) {
            T[count0][0] = i;
            count0++;
        }
        if (B[i] != 0 && count1 < 2) {
            T[count1][1] = i;
            count1++;
        }
        i++;
    }
    printf("\n");
    int j=0; i=0;
    for(i=0; i<2;i++){
        for(j=0; j<2;j++)
            printf("%3d", T[i][j]);
        printf("\n");
 
    }
    printf("\n");
 
    i = 0;
    while (i < n) {
        if (count0<2 || count1<2) break;
        if (i == T[0][0])
            B[i] =B[ T[0][1]];
        if (i == T[1][0])
            B[i] = B[T[1][1]];
 
        printf("%4d", B[i]);
        i++;
    }
    free(B);
    return 0;
}
maximuss
0 / 0 / 0
Регистрация: 24.04.2012
Сообщений: 148
18.01.2013, 00:14  [ТС]     Заменить первые два нулевые элементы заданного вектора В на два первых НЕ нулевые элементы этого вектора #4
спасибо.
А не могли бы Вы, пожалуйста посмотреть в соседние мои темы?
Если конечно не трудно(
Yandex
Объявления
18.01.2013, 00:14     Заменить первые два нулевые элементы заданного вектора В на два первых НЕ нулевые элементы этого вектора
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru