This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427

Выделить память для трёхмерного массива

07.01.2010, 17:08. Показов 1667. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пожалуйста помогите! нужно решить 4 задания, но у меня совершенно нет времени! срочно нужно ехать к девушке...надеюсь на ваше понимание и свободное время.

1. В одномерном массиве поменять местами элементы с чётными и нечётными индексами.

2. Сформируйте квадратную матрицу по правилу: a[i][j]=3 ghb i=j, a[i][j]=-1 i<>j

3. Дан массив из 6 элементов типа целое без знака. Сформировать указатель на этот массив и обратиться ко второму элементу массива разными способами.

4. Выделить память для трёхмерного массива [6][3][4]. Изменить индексацию массива так, чтобы начальный элемент имел индексы -1,-2,-3.

Заранее спасибо...Надеюсь ктонить поможет...

Добавлено через 23 часа 12 минут
помогите, вопрос всё еще актуален!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.01.2010, 17:08
Ответы с готовыми решениями:

выделить память для массива*[]
привет. чего-то не получается организовать работу массива char *c; это динамический массив строк длиной 10 при конструкторе ...

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

Как выделить память для двухмерного массива?
Как выделить память для двухмерного массива в С++ a=new int???

13
Эксперт С++
 Аватар для valeriikozlov
4728 / 2549 / 757
Регистрация: 18.08.2009
Сообщений: 4,568
07.01.2010, 17:29
1.
C
1
2
3
4
5
6
int temp;
for(int i=0; i<n; i+=2)
{temp=mas[i];
mas[i]=mas[i+1];
mas[i+1]=temp;
}
Добавлено через 2 минуты
2.
C
1
2
3
4
5
6
for(int i=0; i<n; i++)
for(int j=0; j<n; j++)
if(i==j)
mas[i][j]=3;
else
mas[i][j]=-1;
Добавлено через 51 секунду
поверьте, на оставшиеся 2 у Вас уйдет не более 15 минут.
1
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
10.01.2010, 20:05  [ТС]
2 последних вопроса всё ещё актуальны! надеюсь на вашу помощь! заранее спасибо.
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12841 / 7590 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
10.01.2010, 20:56
07.01.2010, 17:08
Цитата Сообщение от Bloodykeeper Посмотреть сообщение
Пожалуйста помогите! нужно решить 4 задания, но у меня совершенно нет времени! срочно нужно ехать к девушке...надеюсь на ваше понимание и свободное время.
Сегодня, 20:05
Цитата Сообщение от Bloodykeeper Посмотреть сообщение
2 последних вопроса всё ещё актуальны! надеюсь на вашу помощь! заранее спасибо.
На трое суток залип у девушки вместо того, чтобы уроки делать?
0
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
11.01.2010, 18:40  [ТС]
Цитата Сообщение от easybudda Посмотреть сообщение
07.01.2010, 17:08

Сегодня, 20:05

На трое суток залип у девушки вместо того, чтобы уроки делать?

да, именно) и тем не менее прошу вашей помощи...не судите меня строго за мою наглость.

Да и из уроков только программирование осталось, вот эти задачи и ещё одну я почти доделал уже.

Добавлено через 1 час 17 минут
Всё ещё актуально, и нужно срочно!

Добавлено через 20 часов 22 минуты
Мне всё ещё нужна помощь! Да...я что-то туплю, но как можно сделать ввод элементов одномерного массива с клавиатуры?)
0
8 / 8 / 4
Регистрация: 17.11.2009
Сообщений: 36
11.01.2010, 18:52
Цитата Сообщение от Bloodykeeper Посмотреть сообщение
Мне всё ещё нужна помощь! Да...я что-то туплю, но как можно сделать ввод элементов одномерного массива с клавиатуры?)
C
1
2
3
4
5
printf("vvedite N:");
scanf("%d",&n);
printf("vvedite massiv:");
for (i=0;i<n;i++)
scanf("%d",&a[i]);
1
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
11.01.2010, 19:09  [ТС]
Вообще уже память едет)) пора проц менять наверное =) остальные вопросы всё ещё нужны мне! Вот первая задача, набрасал пока, вот так надо? помогите исправить ошибки если что.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
main()
int n, mas[]; int temp,i;
printf("vvedite razmer: ")
scanf("%d",&n);
printf("vvedite massiv:");
for (i=0;i<n;i++)
scanf("%d",&mas[i]);
for(int i=0; i<n; i+=2)
{temp=mas[i];
mas[i]=mas[i+1];
mas[i+1]=temp;
pritf("massiv: %d", i);
}
Добавлено через 11 минут
да и ещё, во второй задаче нужно динамический массив создавать, или можно подругому? совсем уже всё позабывал...(
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12841 / 7590 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
11.01.2010, 19:18
Цитата Сообщение от Bloodykeeper Посмотреть сообщение
3. Дан массив из 6 элементов типа целое без знака. Сформировать указатель на этот массив и обратиться ко второму элементу массива разными способами.
C
1
2
3
4
5
unsigned arr[6];
/* если второй элемент - это тот, что с индексом 1, тогда так: */
unsigned *u;
u = arr;
printf("%d %d %d %d", arr[1], *(arr + 1), u[1], *(u + 1));
0
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
11.01.2010, 19:22  [ТС]
easybudda, это один из способов? или там несколько, я думаю что один...верно?
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12841 / 7590 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
11.01.2010, 19:25
Bloodykeeper, это как-раз четыре способа получить одно и то же случайное число...
1
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
11.01.2010, 19:47  [ТС]
easybudda, спасибо большое! не можешь мне помочь ещё с первыми двумя задачами, полностью сделать их, у меня визуал студио пропала, пользуюсь wxDev но мне не нравится как ошибки описывает она, и мало что понятно, выручайте! =)

Добавлено через 17 минут
блин, не полностью сделать, а доделать) тупанул, не то написал, надо ведь и свои мозги включать потихонечку.
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
11.01.2010, 23:19
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <stdio.h>
#include <stdlib.h>
 
int main(void) /* C89 ANSI */
{
    int *p4, **p3, ***p6;
    int i, j, k;
    
    /*
    p4 = (int *) malloc(4 * sizeof *p4);
    
    p3 = (int **) malloc(3 * sizeof *p3);
    
    p6 = (int ***) malloc(6 * sizeof *p6);
    */
    
    /* все выделения памяти нужно проверять на NULL */
    
    p6 = (int ***) malloc(6 * sizeof *p6);
    
    for (i = 0; i < 6; i++) {
        
        p3 = (int **) malloc(3 * sizeof *p3);
        
        p6[i] = p3;
        
        for (j = 0; j < 3; j++) {
            
            p4 = (int *) malloc(4 * sizeof *p4);
            
            p6[i][j] = p4;
            
            for (k = 0; k < 4; k++) {
                if (i == 0 && j == 0 && k == 0) {
                    p6[0][0][0] = 10;
                    continue;
                }    
                p6[i][j][k] = k+1;
            }    
        
        }        
    
    }
    /* все выделения памяти нужно проверять на NULL */
        
    printf(
        "%d %d %d %d" "\n",
        p6[0][0][0],
        p6[0][0][1],
        p6[0][0][2],
        p6[0][0][3]
    );
    
    printf(
        "%d %d %d %d" "\n",
        p6[0][1][0],
        p6[0][1][1],
        p6[0][1][2],
        p6[0][1][3]
    );
        
    **p6 += 3;
    *p6 += 2;
    p6++;
    
    printf("%d" "\n", p6[-1][-2][-3]);
    
    p6--;
    *p6 -= 2;
    **p6 -= 3;
    
    for (i = 0; i < 6; i++) {
        for (j = 0; j < 3; j++)
            free(p6[i][j]);
        free(p6[i]);
    }
    free(p6);
        
    exit(EXIT_SUCCESS);
}
Добавлено через 53 секунды
Code
1
2
3
4
5
[guest@station src]$ ./test
10 2 3 4
1 2 3 4
10
[guest@station src]$
1
This party getting crazy!
 Аватар для Bloodykeeper
78 / 64 / 1
Регистрация: 22.09.2009
Сообщений: 427
13.01.2010, 15:23  [ТС]
спасибо! если у кого-нибудь есть немножко времени, пожалуйста, помогите мне соединить первые 2 задачи и проверить работоспособность, а то я в чертежах погряз по уши сейчас...(

Добавлено через 7 часов 54 минуты
Помощь ещё нужна!

Добавлено через 15 часов 47 минут
Помогите с 2мя первыми задачами! ничего не выходит(
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
13.01.2010, 21:59
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
#include <stdio.h>
#include <stdlib.h>
 
/* меняет четные и нечётные элементы массива местами */
int main(void) /* C89 ANSI */
{
    int n[] = { 0, 1, 2, 3, 4 };
    int i, size;
    
    size = sizeof n / sizeof n[0];
    
    for (i = 0; i < size; i += 2)
        if (i+1 < size) {
            int t;
            
            t = n[i];
            n[i] = n[i+1];
            n[i+1] = t;
        }    
    
    for (i = 0; i < size; i++)
        printf(" %d", n[i]);
    putchar('\n');
    
    exit(EXIT_SUCCESS);
}
Добавлено через 26 минут
объединение
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
57
58
59
60
61
#include <stdio.h>
#include <stdlib.h>
 
void EvenOdd(void); 
void FillMatrix(void);
 
/* меняет четные и нечётные элементы массива местами
   заполняет квадратную матрицу ij = 3, i!=j = -1 */
int main(void) /* C89 ANSI */
{
    printf("swap even and odd" "\n");
    EvenOdd();
    
    printf("fill a matrix ij = 3, i!=j = -1" "\n");
    FillMatrix();
    
    exit(EXIT_SUCCESS);
}
 
/* EvenOdd:  меняет четные и нечётные элементы массива местами */
void EvenOdd(void)
{
    int n[] = { 0, 1, 2, 3, 4 };
    int i, size;
    
    size = sizeof n / sizeof n[0];
    
    for (i = 0; i < size; i++)
        printf(" %d", n[i]);
    putchar('\n');
    
    for (i = 0; i < size; i += 2)
        if (i+1 < size) {
            int t;
            
            t = n[i];
            n[i] = n[i+1];
            n[i+1] = t;
        }    
    
    for (i = 0; i < size; i++)
        printf(" %d", n[i]);
    putchar('\n');
}
 
/* FillMatrix:  заполняет квадратную матрицу ij = 3, i!=j = -1 */
void FillMatrix(void)
{
    int n[4][4];
    int i, j;
    
    for (i = 0; i < 4; i++)
        for (j = 0; j < 4; j++)
            n[i][j] = (i == j) ? 3 : -1;
    
    for (i = 0; i < 4; i++) {
        for (j = 0; j < 4; j++)
            printf(" %d", n[i][j]);
        putchar('\n');
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.01.2010, 21:59
Помогаю со студенческими работами здесь

Как выделить память для динамического массива?
Как выделить память для динамического массива? typedef TPrimitives *TPrimitive; //... TPrimitives Primitives; Мне нужно выделить...

Как динамически выделить память для строкового массива?
Собственно сам вопрос.

Выделить динамическую память для 2-х мерного массива из N-строк
Помогите с задачей Задание: &quot;Выделить динамическую память для 2-х мерного массива из N-строк след.вида:&quot;

Невозможно выделить память для массива постоянного нулевого размера
/* Дан массив из N элементов (вещественные числа). Вычислить: 1) произведение элементов массива с нечетными номерами; 2) сумму...

Невозможно выделить память для массива постоянного нулевого размера
unsigned const __int16 scrx = GetSystemMetrics(SM_CXSCREEN); char sstring; Что не так в этих двух строках? в scrx гарантированно...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

Новые блоги и статьи
Оптимизация производительности Express.js бэкенда
Reangularity 23.05.2025
Express. js заслуженно остаётся одним из самых популярных инструментов для создания бэкенда, но даже он не застрахован от проблем с производительностью. Многие разработчики сталкиваются с ситуацией,. . .
Продвинутая обработка данных с LINQ в C#
stackOverflow 23.05.2025
LINQ (Language Integrated Query) — это фундаментальное изменение парадигмы работы с данными в C#. Простые запросы Where и Select знакомы любому разработчику, но настоящая мощь LINQ раскрывается в. . .
Инфраструктура PKI и сертификатов безопасности
Mr. Docker 23.05.2025
PKI (Public Key Infrastructure) — это невидимый фундамент цифрового доверия, без которого современный интернет просто рассыпался бы как карточный домик. За этой аббревиатурой скрывается целый. . .
Аутентификация OAuth в Python
py-thonny 22.05.2025
OAuth (Open Authorization) — это целый стандарт для делегированного доступа. Звучит занудно? Давайте проще: OAuth позволяет приложениям получать доступ к информации пользователя на сторонних сервисах. . .
Хеширование и соль паролей в веб-приложениях C#
stackOverflow 22.05.2025
Когда-то в начале своей карьеры я тоже грешил простейшими подходами к хранению паролей – MD5-хеширование казалось верхом защиты. Но технологии не стоят на месте, вычислительные мощьности растут, и. . .
Генераторы Python для эффективной обработки данных
AI_Generated 21.05.2025
В Python существует инструмент настолько мощный и в то же время недооценённый, что я часто сравниваю его с тайным оружием в арсенале программиста. Речь идёт о генераторах — одной из самых элегантных. . .
Чем заменить Swagger в .NET WebAPI
stackOverflow 21.05.2025
Если вы создавали Web API на . NET в последние несколько лет, то наверняка сталкивались с зелёным интерфейсом Swagger UI. Этот инструмент стал практически стандартом для документирования и. . .
Использование Linq2Db в проектах C# .NET
UnmanagedCoder 21.05.2025
Среди множества претендентов на корону "идеального ORM" особое место занимает Linq2Db — микро-ORM, балансирующий между мощью полноценных инструментов и легковесностью ручного написания SQL. Что. . .
Реализация Domain-Driven Design с Java
Javaican 20.05.2025
DDD — это настоящий спасательный круг для проектов со сложной бизнес-логикой. Подход, предложенный Эриком Эвансом, позволяет создавать элегантные решения, которые точно отражают реальную предметную. . .
Возможности и нововведения C# 14
stackOverflow 20.05.2025
Выход версии C# 14, который ожидается вместе с . NET 10, приносит ряд интересных нововведений, действительно упрощающих жизнь разработчиков. Вы уже хотите опробовать эти новшества? Не проблема! Просто. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru