Разработать функцию, которая возвращает указатель на последний элемент целочисленного массива - C (СИ)
Формулировка задачи:
Указание:
Разработать подпрограмму в виде функции. Привести пример вызова разработанной функции из главной функции программы main( ). Адрес массива должен передаваться в функцию при помощи указателя. Результат функции должен возвращаться в точку вызова также при помощи указателя.Задание:
Разработать функцию, которая возвращает указатель на последний элемент целочисленного массива, равный заданному значению, передаваемому в функцию. Привести пример вызова разработанной функции для поиска числа 4 а) во всем целочисленном массиве из 10 элементов б) в отрезке массива от 2-го по 8-й элемент Можете подсказать, правильно ли сделана функция? Не компилируется в моём VB из-за ошибки C4703#include "stdio.h"
int* searchPointer(int array[], int number)
{
int* pointer;
for (int i = 1; i < 9; i++)
{
if (array[i] == number) {
pointer = &array[i];
}
}
return pointer;
}
int main() {
int array[] = { -1,-5,-5,4,2 };
int n = 5;
int *q, *p;
int a, b, c = 0;
for (q = &b, p = array; p < array + n - 1; p++)
{
if (*p > 0 || *p % 2 == 0) {
q = p;
break;
}
}
a = *(q + 1);
b = *q;
printf("%p\n", searchPointer(array, -5));
return 0;
}Решение задачи: «Разработать функцию, которая возвращает указатель на последний элемент целочисленного массива»
textual
Листинг программы
int main() {
int array[] = { -1,-5,-5,4,2,6,7,8,11,-3 };
int n = 10;
int *q, *p;
int a, b, c = 0;
for (q = &b, p = array; p < array + n - 1; p++)
{
if (*p > 0 || *p % 2 == 0) {
q = p;
break;
Объяснение кода листинга программы
- Объявляется целочисленный массив array[] и инициализируется значениями {-1,-5,-5,4,2,6,7,8,11,-3}.
- Объявляется переменная n и инициализируется значением 10.
- Объявляются три переменные q, p и a.
- Переменная q инициализируется адресом переменной b.
- Переменная p инициализируется адресом первого элемента массива array.
- Переменная a инициализируется значением 0.
- В цикле for происходит перебор элементов массива array от второго до предпоследнего элемента.
- Если значение текущего элемента больше нуля или делится нацело на 2, то выполняется следующее действие.
- Переменная q присваивается адрес текущего элемента p.
- Цикл for прерывается.
- Выводится значение переменной q.