Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 19.09.2021
Сообщений: 7

Как из неизменяемого указателя – имя массива и смещения указателя заполнить массив случайными числами

12.12.2021, 15:52. Показов 1052. Ответов 8

Студворк — интернет-сервис помощи студентам
Как с помощью неизменяемого указателя – имя массива и смещения указателя заполнить массив случайными числами и вывести на экран матрицу в виде таблицы.

Добавлено через 1 минуту
Как с помощью неизменяемого указателя – имя массива и смещения указателя заполнить массив случайными числами и вывести его на экран (Двумерный массив)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.12.2021, 15:52
Ответы с готовыми решениями:

Создать массив, заполнить случайными числами четные элементы массива, а нечетные заполнить квадратом их индекса
На паре задали сделать работу,но ничего не объяснили,а я до этого с массивами не работал,если кому то не сложно помогите,буду благодарен. ...

Заполнить массив случайными числами, выполнить сортировку массива по возрастанию
Нужно заполнить числовой массив 10 целыми случайными числами, выполнить сортировку массива по возрастанию чисел Dim bytI, bytA(0 To 10)...

Заполнить массив случайными числами, вывести элементы массива в 2 строки
помогите пожалуйста. (заполнить массив S(1..20) случайным образом числами из интервала от 0 до 100. Вывести элементы массива в 2 строки) ...

8
Windows must die
673 / 855 / 103
Регистрация: 23.11.2021
Сообщений: 5,066
Записей в блоге: 17
12.12.2021, 16:03
Ну так аналогия же: mas[N] == mas + N. Только двумерный массив нужно будет через одномерный реализовать, иначе не получится, т.к. двумерный массив - это массив одномерных, и не факт, что они будут "утрамбованы", наверняка каждый будет выравнен на 32 или 64 бита.. Разве что задать опцию __attribute__((packed)) или #pragma pack.
Но таки лучше работать с одномерным.
0
фрилансер
 Аватар для Алексей1153
6465 / 5678 / 1131
Регистрация: 11.10.2019
Сообщений: 15,118
12.12.2021, 16:09
Цитата Сообщение от Николай_______ Посмотреть сообщение
неизменяемого указателя – имя массива
а почему ты связал эти понятия? Указатель - это не имя массива
0
0 / 0 / 0
Регистрация: 19.09.2021
Сообщений: 7
12.12.2021, 16:11  [ТС]
А какой должен быть код, просто когда я пробывал выразить через одномерные у меня не получалось(

Добавлено через 2 минуты
6. Дан двумерный массив A(n ×m). С помощью неизменяемого указателя – имя массива и смещения указателя заполнить массив случайными числами; Вывести матрицу на экран в виде таблицы. Найти количество нулевых элементов матрицы. Не использовать индексацию!! дана такая задача, не могу понять, как всё-таки создать двумерный массив с помощью указателей.
0
Windows must die
673 / 855 / 103
Регистрация: 23.11.2021
Сообщений: 5,066
Записей в блоге: 17
12.12.2021, 16:13
Ну так в одномерном все просто же: f(x,y) выражается как [inline]f[y*W + x][inline], где W - ширина массива.
В этом случае если мы задали массив как [inline]double F[W*H];[inline], то индексацию можем проводить как [inline]F + y*W + x[inline].

Добавлено через 59 секунд
Цитата Сообщение от Николай_______ Посмотреть сообщение
как всё-таки создать двумерный массив с помощью указателей.
C
1
double *F = calloc(W * H, sizeof(double));
0
0 / 0 / 0
Регистрация: 19.09.2021
Сообщений: 7
12.12.2021, 16:17  [ТС]
А если мне его будет необходимо заполнить?
0
Windows must die
673 / 855 / 103
Регистрация: 23.11.2021
Сообщений: 5,066
Записей в блоге: 17
12.12.2021, 16:22
Ну так просто же:
C
1
2
3
4
int MaxSz = W*H;
...
for(int i = 0; i < MaxSz; ++i)
  *(F + i) = drand48();
Или так:
C
1
2
for(int i = W*H; i > 0; --i)
  *(F + i) = drand48();
Или вообще так (правда, это будет не по условию):
C
1
2
3
double *m = F;
for(int i = W*H; i > 0; --i)
  *m++ = drand48();
0
фрилансер
 Аватар для Алексей1153
6465 / 5678 / 1131
Регистрация: 11.10.2019
Сообщений: 15,118
12.12.2021, 16:41
Цитата Сообщение от Николай_______ Посмотреть сообщение
Дан двумерный массив A(n ×m). С помощью неизменяемого указателя заполнить массив случайными числами;
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
#include <iostream>
 
int main()
{
    int A[5][7]{};
    
    //указатель на первый элемент
    int* const p=&A[0][0];
    
    //заполнение при помощи указателя и смещения
    for(size_t i=0; i<std::size(A)*std::size(A[0]); i++)
    {
        p[i]=rand();
    }
    
    //распечатка
    for(const auto& row:A)
    {
        for(const auto& col:row)
        {
            std::cout<<col<<' ';
        }
        std::cout<<'\n';
    }
 
    return 0;
}
0
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
12.12.2021, 18:04
Алексей1153, UB, переделывай.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.12.2021, 18:04
Помогаю со студенческими работами здесь

Написать функцию, которая принимает массив, размер массива и два числа m и n. - Заполнить массив случайными числами, в
Написать функцию, которая принимает массив, размер массива и два числа m и n. - Заполнить массив случайными числами, в диапазоне от m до...

Заполнить массив случайными числами; поменять местами заданные элементы массива
Одномерный массив из 16 элементов с номерами от 3 до 8 заполнить случайным образом числами от 5 до 17. Остальным присвоить значение 0....

Как сделать функцию от указателя на класс и указателя на метод?
Не получается сделать функцию, параметрами которой являются указатель на класс и на метод. Обращаться к классу нужно именно по указателю,...

Как заполнить массив случайными числами -20 до 20
Может кто подсказать как завести в массив случайные числа от -20 до 20 ???оч надо!!

Как заполнить массив случайными числами
Задание на Dll-файлы .686 .model flat,stdcall option casemap:none include \masm32\include\windows.inc include...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru