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

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

12.12.2021, 15:52. Показов 1020. Ответов 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
666 / 838 / 102
Регистрация: 23.11.2021
Сообщений: 4,889
Записей в блоге: 15
12.12.2021, 16:03
Ну так аналогия же: mas[N] == mas + N. Только двумерный массив нужно будет через одномерный реализовать, иначе не получится, т.к. двумерный массив - это массив одномерных, и не факт, что они будут "утрамбованы", наверняка каждый будет выравнен на 32 или 64 бита.. Разве что задать опцию __attribute__((packed)) или #pragma pack.
Но таки лучше работать с одномерным.
0
фрилансер
 Аватар для Алексей1153
6449 / 5648 / 1129
Регистрация: 11.10.2019
Сообщений: 15,037
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
666 / 838 / 102
Регистрация: 23.11.2021
Сообщений: 4,889
Записей в блоге: 15
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
666 / 838 / 102
Регистрация: 23.11.2021
Сообщений: 4,889
Записей в блоге: 15
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
6449 / 5648 / 1129
Регистрация: 11.10.2019
Сообщений: 15,037
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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru