Разработать функцию, которая возвращает указатель на последний элемент целочисленного массива - 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;

Объяснение кода листинга программы

  1. Объявляется целочисленный массив array[] и инициализируется значениями {-1,-5,-5,4,2,6,7,8,11,-3}.
  2. Объявляется переменная n и инициализируется значением 10.
  3. Объявляются три переменные q, p и a.
  4. Переменная q инициализируется адресом переменной b.
  5. Переменная p инициализируется адресом первого элемента массива array.
  6. Переменная a инициализируется значением 0.
  7. В цикле for происходит перебор элементов массива array от второго до предпоследнего элемента.
  8. Если значение текущего элемента больше нуля или делится нацело на 2, то выполняется следующее действие.
  9. Переменная q присваивается адрес текущего элемента p.
  10. Цикл for прерывается.
  11. Выводится значение переменной q.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5
Похожие ответы