Работа с массивом через пользовательские функции через указатели - 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++;
}
Объяснение кода листинга программы
В данном коде выполняется следующие действия:
- Создается переменная типа int с именем i и инициализируется значением 0.
- Создается переменная типа int с именем x и инициализируется значением, которое неизвестно на данном этапе (предполагается, что это значение было получено от пользователя или из другого источника данных).
- Создается переменная типа int с именем a и инициализируется значением, которое также неизвестно на данном этапе (предполагается, что это значение было получено от пользователя или из другого источника данных).
- Запускается цикл for, который будет выполняться до тех пор, пока значение переменной i меньше значения переменной x.
- Внутри цикла выполняется действие: ввод значения с помощью функции cin и сохранение этого значения в переменную *a. Здесь используется оператор индирекции (знак звездочки), который позволяет обращаться к элементу массива через указатель.
- После ввода значения переменной a увеличивается на 1, что позволяет перейти к следующему элементу массива.
- После завершения цикла выполняются действия, которые не были описаны в представленном коде (предполагается, что это могут быть действия, связанные с обработкой полученных данных).