динамическое распределение памяти и динамический массив

c

555 просмотра

2 ответа

5 Репутация автора

Мне нужно написать программу, которая попросит пользователя ввести число, сколько он хотел бы ввести, так что результат будет выглядеть

Введите количество Ints (должно быть больше 1)

и они будут вводить число от 2 до бесконечности (если они действительно хотят зайти так далеко)

в этот момент я бы просканировал это число и установил бы его в переменную

теперь с этим номером я хочу запустить цикл for, чтобы попросить их начать ввод своих Ints

for (count = 0; count < numofInts; count++)
{
    printf("    Enter an integer: ");
   scanf("%d", &Number);
}

проблема, с которой я столкнулся, заключается в том, что мне нужно убедиться, что он записывает каждое введенное число, поэтому мне нужно сохранить эти значения в массиве, но число элементов массива должно быть динамическим, чтобы он мог меняться в зависимости от numofInts, я должен использовать Malloc () для создания выделенного пространства динамической памяти, и я понимаю, что он создает переменную с пространством памяти того, что я всегда устанавливал для malloc, но я не знаю, как хранить ряд переменных в это пространство, а затем перезвоните им, когда они мне понадобятся.

Предполагается, что конечный результат программы будет принимать число, подобное 123456789, и циклически перебирать число, в котором хранятся целые числа как «наибольшее» целое число, а затем выплевывать, какое целое число самое большое, например x = 1234567890, x% 10, x = 0, самый большой = x, x / 10, x% 10, x = 9, если x> самый большой, самый большой = x, и просто зациклите его, пока он не будет циклически проходить через целое число, и сохраните это число в самом конце. У меня есть эта часть вниз, но, поскольку мне нужно взять ряд чисел и запустить этот цикл для всех этих чисел, мне нужно иметь возможность хранить и вызывать эти значения и помещать их в цикл, чтобы иметь возможность хранить наибольшее цифры этих чисел

любая помощь в решении этой проблемы будет принята с благодарностью, я просто не смог понять, как использовать malloc или создать динамический массив, и большинство уроков, которые я читал онлайн или смотрел с YouTube, посвящены C ++, и мне нужно это сделать только с C ...

http://pastebin.com/PZyvEQ4J

что у меня так далеко

Автор: user1070226 Источник Размещён: 12.12.2011 09:35

Ответы (2)


2 плюса

205166 Репутация автора

Решение

После того, как вы прочитали numInts, вы распределяете массив следующим образом:

int* arr = malloc(numInts*sizeof(int));

Теперь вы заполняете массив уже существующей функцией и присваиваете значения, считанные в массив.

Я не собираюсь давать вам полное решение, так как это домашняя работа, и она вам не поможет, но вы получаете доступ к iому элементу массива с помощью []оператора:

arr[i];
Автор: Luchian Grigore Размещён: 12.12.2011 09:40

0 плюса

186413 Репутация автора

Узнайте больше об указателях и calloc

Автор: Basile Starynkevitch Размещён: 12.12.2011 09:40
Вопросы из категории :
32x32