Работа с массивом через пользовательские функции через указатели - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Не хочет работать ( Выводит только последний элемент массива ) Help!
#include <iostream>
using namespace std;
void vvod(int x, int *);
void vyvod(int y, int *);
int result(int z, int *);
 
int main(void)
{
    int n, massiv[40], *g;
    g = massiv;
    setlocale(0, "rus");
    cout << "\t\tПрактическая №5 \t\t\n";
    cout << "\tОписание: Ввести в память машины одномерный целочисленный массив,\n";
    cout << "\tразмером не менее 30 элементов.Ввод осуществить с клавиатуры.\n";
    cout << "\tПроизвести манипуляции с массивом данных согласно условию, предложенному в варианте задания.\n";
    cout << "\tВывести на экран исходный массив и данные, полученные согласно заданию в варианте.\n";
    cout << "\tВвод массива, манипуляции с массивом, вывод данных произвести через отдельные пользовательские функции.\n";
    cout << "\tПервый вариант решения должен использовать обычную адресацию элементов массива.\n";
    cout << "\tВторой вариант решения должен использовать адресацию элементов массива через указатели.\n\n";
    cout << "\t\tПервый вариант\t\t\n";
    cout << "Введите колличество элементов : ";
    cin >> n;
    while (n < 5)
    {
        cout << "Ошибка! Количество элементов должно быть не менее 30 элементов\n";
        cout << "Введите колличество элементов : ";
        cin >> n;
    }
    vvod(n, g);
    vyvod(n, g);
    cout << "\nКоличество 3-x значных отрицательных элементов массива равно = " << result(n, g);
    cout << "\n";
    g = &massiv[0];
 
}
 
void vvod(int x, int *a)
{
    cout << "\nВведите элементы массива :\n";
    for (int i = 0; i<x; i++)
        cin >> *a;
    a++;
 
}
 
void vyvod(int y, int *a)
{
    cout << "\nВы ввели массив :";
    for (int i = 0; i<y; i++)
        cout << *a << " ";
    a++;
}
int result(int z, int *b)
{
    int res = 0;
    for (int i = 0; i<z; i++)
    if (*b>-1000 && *b<-99)
        res++;
    b++;
    return res;
}

Решение задачи: «Работа с массивом через пользовательские функции через указатели»

textual
Листинг программы
for (int i = 0; i < x; i++)
{
    cin >> *a;
    a++;
}

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

В данном коде выполняется следующие действия:

  1. Создается переменная типа int с именем i и инициализируется значением 0.
  2. Создается переменная типа int с именем x и инициализируется значением, которое неизвестно на данном этапе (предполагается, что это значение было получено от пользователя или из другого источника данных).
  3. Создается переменная типа int с именем a и инициализируется значением, которое также неизвестно на данном этапе (предполагается, что это значение было получено от пользователя или из другого источника данных).
  4. Запускается цикл for, который будет выполняться до тех пор, пока значение переменной i меньше значения переменной x.
  5. Внутри цикла выполняется действие: ввод значения с помощью функции cin и сохранение этого значения в переменную *a. Здесь используется оператор индирекции (знак звездочки), который позволяет обращаться к элементу массива через указатель.
  6. После ввода значения переменной a увеличивается на 1, что позволяет перейти к следующему элементу массива.
  7. После завершения цикла выполняются действия, которые не были описаны в представленном коде (предполагается, что это могут быть действия, связанные с обработкой полученных данных).

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


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

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

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