powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Динамические массивы и указатели
3 сообщений из 3, страница 1 из 1
Динамические массивы и указатели
    #39428858
cnainik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здраствуйте . Помогите пожалуйста .... Есть динамический массив и натуральное число N, крайним элементом будет A(n).Организовать ввод, обработку , вывод элементов массива используя указатели .


Код: plaintext
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.
int main()
{
    setlocale(LC_ALL, "russian");
    char mass[N];
    char* ptr;
    int i, tmp;
    ptr = mass;

    ptr = (char*)malloc(sizeof(char) * N);

    puts("Введите элементы ");
    for (i = 0; i < N; i++)
        scanf("%c", &ptr[i]);

    for (i = 0; i < N; i++)
        printf("%c", *ptr++);

    for (i = 0; i < N; i++) {
        if (mass[i] > mass[i + 1]) {
            tmp = 0;
            tmp = ptr[i];
            mass[i] = mass[i + 1];
            mass[i + 1] = tmp;
        }
        printf("%c", mass[i + 1]);
    }

    return 0;
}


Модератор: Отформатировано
...
Рейтинг: 0 / 0
Динамические массивы и указатели
    #39429090
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cnainikЗдраствуйте . Помогите пожалуйста .... Есть динамический массив и натуральное число N, крайним элементом будет A(n).Организовать ввод, обработку , вывод элементов массива используя указатели .


Код: plaintext
1.
    ptr = (char*)malloc(sizeof(char) * N);




malloc и ?

Сказал "А" -- надо говорить и "Б"!
...
Рейтинг: 0 / 0
Динамические массивы и указатели
    #39430553
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я немного покритиковал:

Код: plaintext
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.
int main()
{
    setlocale(LC_ALL, "russian");
    char mass[N];
    char* ptr;
    int i, tmp;
    ptr = mass; //указатель ptr "смотрит" на массив mass

    ptr = (char*)malloc(sizeof(char) * N); //а теперь укзатель "смотрит" на новый кусок памяти, поэтому предыдущая строчка теряет смысл

    puts("Введите элементы ");
    for (i = 0; i < N; i++)
        scanf("%c", &ptr[i]); //заполнили новый кусок памяти (не массив!)

    for (i = 0; i < N; i++)
        printf("%c", *ptr++);

    for (i = 0; i < N; i++) {
        if (mass[i] > mass[i + 1]) {//у нас в массиве значения не заданы, поэтому сравнения не имеют смысл
            tmp = 0; //абсолютно бесполезная строчка
            tmp = ptr[i];
            mass[i] = mass[i + 1];
            mass[i + 1] = tmp;
        }
        printf("%c", mass[i + 1]); //последний элемент выйдет за границы массива!
    }

    return 0; //до выхода из функции нет освобождения выделенной памяти с помощью free
}



Для поставленной задачи массив mass не нужен, а последний цикл надо проводить с указателем ptr.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Динамические массивы и указатели
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]