Возврат функции из массива: Невозможно преобразовать аргумент 1 из "float" в "float []" - C (СИ)
Формулировка задачи:
В общем выдаёт следующую ошибку.
(невозможно преобразовать аргумент 1 из "float" в "float []")
#include <stdio.h> #include <conio.h> #define n 9 float mass1(float a[n], int i) // функция ввода массива { for (i = 0; i < n; i++) { printf("vvedite element massiva A[%d]:\n", i); scanf_s("%f", a[i]); return a[n]; } return a[n]; } int main() { int i; float a[n], max; mass1 ( a[n], i ); // Строка с ошибкой max = a[0]; for (i = 1; i < n; i++) { if (a[i] > a[i - 1]) max = a[i]; else printf("posledovatel'nost' ne vozrastayuschaya"); } _getch(); }
Решение задачи: «Возврат функции из массива: Невозможно преобразовать аргумент 1 из "float" в "float []"»
textual
Листинг программы
int fill_array(float * array, size_t count) { size_t i; for ( i = 0; i < count; ++i ) { printf("ARRAY[%u] = ", i); if ( scanf("%f", &array[i]) != 1 ) return -1; } return 0; }
Объяснение кода листинга программы
В данном коде представлена функция fill_array, которая принимает два аргумента:
- float * array — указатель на массив типа float, в который будут записываться значения
- size_t count — размер массива, т.е. количество элементов, которые необходимо заполнить Код выполняет следующие действия:
- Создает переменную i типа size_t и инициализирует ее значением 0
- Запускает цикл for, который будет выполняться, пока значение i меньше count
- Внутри цикла выводит на экран индекс текущего элемента массива с помощью printf
- С помощью scanf считывает значение с консоли и записывает его в соответствующий элемент массива, используя указатель array и индекс i
- Если scanf не смог считать значение (возвращает 0), то функция возвращает -1
- После завершения цикла возвращает 0 Таким образом, данный код заполняет массив типа float значениями, которые пользователь вводит с клавиатуры
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д