Почти написал лабораторную, где 8 заданием было написать функцию, которая удаляет из массива элемент, индекс которого введен с клавиатуры. Не понимаю последнее задание
9) Удаленный элемент вернуть в главную функцию через заголовок функции.
Другие языки программирования и технологии
Вопрос массивам и функциям по с++
int func(){
int a=4;
return a;
}
int main(){
int b = func();
return 0;
}
переменная "a" возвращена через заголовок функции
int a=4;
return a;
}
int main(){
int b = func();
return 0;
}
переменная "a" возвращена через заголовок функции
Slava Kazukevich
то есть, из inline функции через return сделать так, чтобы значение удаленного элемента массива выводилось, как переменная?
#include <iostream>
#include <iomanip>
#include <cassert>
using namespace std;
void fill(int* collection, int& size, const int buffer);
void print(int* collection, const int size);
int delete_element(int* collection, int& size, const int index);
int main() {
const int buffer = 100;
int collection[buffer];
int size = 10;
fill(collection, size, buffer);
print(collection, size);
int index = 5;
int element = delete_element(collection, size, index);
cout << "Element: " << element << endl;
print(collection, size);
cin.get();
}
void fill(int* collection, int& size, const int buffer) {
if (size > buffer) size = buffer;
for (int i = 0; i < size; ++i) collection[i] = i + 1;
}
void print(int* collection, const int size) {
for (int i = 0; i < size; ++i) cout << setw(4) << collection[i];
cout << endl;
}
int delete_element(int* collection, int& size, const int index) {
assert(index >= 0);
assert(index < size);
assert(size != 1);
int element = collection[index];
for (int i = index + 1; i < size; ++i) collection[i - 1] = collection[i];
--size;
return element;
}
#include <iomanip>
#include <cassert>
using namespace std;
void fill(int* collection, int& size, const int buffer);
void print(int* collection, const int size);
int delete_element(int* collection, int& size, const int index);
int main() {
const int buffer = 100;
int collection[buffer];
int size = 10;
fill(collection, size, buffer);
print(collection, size);
int index = 5;
int element = delete_element(collection, size, index);
cout << "Element: " << element << endl;
print(collection, size);
cin.get();
}
void fill(int* collection, int& size, const int buffer) {
if (size > buffer) size = buffer;
for (int i = 0; i < size; ++i) collection[i] = i + 1;
}
void print(int* collection, const int size) {
for (int i = 0; i < size; ++i) cout << setw(4) << collection[i];
cout << endl;
}
int delete_element(int* collection, int& size, const int index) {
assert(index >= 0);
assert(index < size);
assert(size != 1);
int element = collection[index];
for (int i = index + 1; i < size; ++i) collection[i - 1] = collection[i];
--size;
return element;
}
Slava Kazukevich
спасибо за вариант с указателями, пригодится) кстати, раз уж Вы используете, такой вопрос: в чем разница между getch() и cin.egt()? и можно вместо i в циклах использовать указатель на i? а то не получалось
Вам нужно юзать динамическую память? Проще всего через vector, если не нужно руками прописывать все действа с памятью.
void func(int& i)
{
vector (int) v;
//--работа с элементами--//
int t=v[i];
//--удаление элемента v[i]--//
i=t;
}
void main()
{
int i;
func(i); //значение в i
}
void func(int& i)
{
vector (int) v;
//--работа с элементами--//
int t=v[i];
//--удаление элемента v[i]--//
i=t;
}
void main()
{
int i;
func(i); //значение в i
}
Slava Kazukevich
ну вот не изучали пока динамическую память, только что указатели прошли... нельзя пока использовать, а так было бы наверное удобнее, правда
Похожие вопросы
- С++.Дан одномерный числовой массив. Написать функции.
- Привет, помогите с программированием на СИ, передача массива в функцию..
- Как можно передать ДВУМЕРНЫЙ массив в функцию в С++, не создавая его, как глобальный. Пример ниже:
- Двойной массив в функцию.
- Паскаль, домашка, одномерный массив и функции, ХЭЛП!
- Язык си, двухмерный массив и функция.
- нахождение наибольшего элемента массива через функцию
- Вопрос , массив.
- C++: И снова передача двумерных массив в функцию.. . каким макаром это сделать?
- как вернуть двумерный динамический массив из функции С++