Составить динамический список из произвольного числа элементов - C (СИ)
Формулировка задачи:
Только начали изучать Си, весь обматерился с ним ((. Ничего не получается. Вот сижу, не могу понять в чем у меня ошибка! Подскажите плиз....
Подпрограмма должна составлять динамический список из произвольного числа элементов
void INDin(int x) { float *mas; mas=(float*)malloc(sizeof(float)); float input_=0; int i=0; while (input_!='1234') { scanf("%f",input_); mas[i]=input_; i++; realloc(mas,sizeof(float)*(i+1)); } Vivod(mas,i); }
Решение задачи: «Составить динамический список из произвольного числа элементов»
textual
Листинг программы
void INDin(int x/*что это за цифра?*/) {//исходя из предпосылки о том что вы только начали, примем что это массив память под который выделяется динамически. float *mas;//всё верно, так и надо. mas=(float*)malloc(sizeof(float));//так не надо. Это работает, но обычно выделяют память под //достаточно большое число элементов, или под ровно столько сколько необходимо. float input_ = 0;//его занулять при объявлении не обязательно int i=0; while (input_ != 1234)/*тут явная ошибка. в одинарных кавычках записываются константные символы, типа 'a' или 'W' или '%' или '\n', в последнем случае это символ переноса строки.*. Если цикл исполняется до тех пор пока input_ не станет равным 1234 то нужно написать input != 1234*/ { scanf("%f", &input_);//необкодимо высылать не input_ а его адрес, т. е. &input, именно по этому прога вылетала. mas = (float*) realloc(mas, sizeof(float) * (i + 1));/*если память будет выделена в другом месте нужно зафиксировать это, записав в ссылку на масив. . .*/ mas[i] = input_; i++; } Vivod(mas,i); }
Объяснение кода листинга программы
- Ввод данных в программу осуществляется с помощью функции scanf.
- В данной программе создается динамический массив с помощью функций malloc и realloc.
- Размер массива определяется с помощью цикла while и увеличивается на единицу при каждом шаге.
- В качестве индекса используется переменная i, которая итерируется от 0 до n-1, где n - количество элементов в массиве.
- Функция Vivod выводит элементы массива на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д