С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 02.12.2018
Сообщений: 7
1

Изменение произвольного элемента массива

29.09.2019, 13:08. Показов 1927. Ответов 3

Author24 — интернет-сервис помощи студентам
Столкнулся с проблемой присвоения элемента одного массива на другой.
Здесь мне нужно взять элемента с массива arr2, сделать его символьным и присвоить соответствующему элементу arr1.
В чем проблема?
Компиляция выдает такой результат: 0 1101000 (с пробелами и иероглифами)
Ожидаю: 010011011000
вот программа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <vector>
#include <math.h>
 
using namespace std;
 
int main() {
    vector<char> arr1;
    vector<int> arr2 = { 0, 1, 0, 1 };
    arr1 = { '0','0','0','0','1','1','0','0','1','0','0','0' };
 
    for (int i = 0; i < 4; i++) {
        arr1[pow(2, i) - 1] = (char)arr2[i];
        }
    for (auto now : arr1) cout << now;
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.09.2019, 13:08
Ответы с готовыми решениями:

Найти три наименьших элемента произвольного одномерного массива
1 Найти 3 наименьших элемента произвольного одномерного массива.

Найти три наименьших элемента произвольного одномерного массива
Найти три наименьших элемента произвольного одномерного массива. ---------------- очень срочно...

Написать функции добавления и удаления произвольного элемента динамического массива
Несмотря на вроде бы распространенность задачи нигде не могу найти простое и универсальное решение,...

Вычислить произведение максимального и минимального элемента произвольного двумерного массива
Вычислить произведение максимального и минимального элемента произвольного двумерного массива...

3
Модератор
Эксперт С++
13706 / 10909 / 6473
Регистрация: 18.12.2011
Сообщений: 29,125
29.09.2019, 13:11 2
Лучший ответ Сообщение было отмечено zss как решение

Решение

C++
1
2
3
4
5
    int j=1;
    for (int i = 0; i < 4; i++) {
        arr1[j - 1] = (char)arr2[i]+'0';
        j*=2;
    }
1
0 / 0 / 0
Регистрация: 02.12.2018
Сообщений: 7
29.09.2019, 13:14  [ТС] 3
Можете обьяснить почему мой вариант не рабочий? Почему он пробелы и иероглифы печатает?
0
Модератор
Эксперт С++
13706 / 10909 / 6473
Регистрация: 18.12.2011
Сообщений: 29,125
29.09.2019, 13:32 4
Лучший ответ Сообщение было отмечено Паша_0105 как решение

Решение

Вы вставляете значение цифры, а не цифру.
Чтобы ее получить надо к значению прибавить код цифры ноль:
0+'0'='0'
1+'0'='1'
...
9+'0'='9'

Также я не рекомендую использовать функцию pow для целочисленных операций,
т.к. результат ее вычисления имеет тип double.
1
29.09.2019, 13:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.09.2019, 13:32
Помогаю со студенческими работами здесь

Передача двухмерного массива в функцию и изменение элемента массива
Такая проблема! Нужно передать в функцию двухмерный массив и изменить на елемент который равен 0 и...

Почему изменение элемента массива, который был объявлен с размером [] - это UB?
char str = &quot;zzarb&quot;; str = 'm'; // Undefined Behavior char str = &quot;zzarb&quot;; str = 'm'; // OK ...

Изменение даты создания произвольного файла
Написать программу, изменяющую дату и время создания произвольного файла Покапавшись нашел...

Вставка в одномерный массив произвольного элемента.
Переменные объявлены глобально. Вот функции для получения рандомного числа и самой вставки. int...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru