Задать вопрос

Как передать в функцию переменные и вернуть их?

как передать в функцию массив и другие переменные и вернуть их, а затем вывести через main. Обязательно нужно через функцию
#include "stdafx.h" 
#include "stdio.h" 
#include "iostream"

using namespace std;

int enter(int number_rocket[4], int amount, int min_fuel, int min_E, int min_mass, int max_umass, int max_speed) {

	int fuel, E, mass, umass, speed;

	cout << "\tЗапускаем идеальную ракету Falcon 9\n\nВведите кол-во ракет:\t";

	cin >> amount;

	while ( amount < 1) {
		cout << "\n\tКол-во ракет не может быть меньше 1!\n\nВведите повторно кол-во ракет:\t";
		cin >> amount;
	}

	cout << "\n\tХарактеристика ракеты 1\n"
		<< "\nВведите кол-во необходимого топилва для взлета:\t";
	cin >> fuel;
	cout << "\nВведите кол-во энергии затраченной на взлет:\t";
	cin >> E;
	cout << "\nВведите массу ракеты:\t";
	cin >> mass;
	cout << "\nВведите полезную массу:\t";
	cin >> umass;
	cout << "\nВведите максимальную скорость ракеты:\t";
	cin >> speed;

	min_fuel = fuel;
	number_rocket[0] = 0;

	min_E = E;
	number_rocket[1] = 0;

	min_mass = mass;
	number_rocket[2] = 0;

	max_umass = umass;
	number_rocket[3] = 0;

	max_speed = speed;
	number_rocket[4] = 0;

	for (int i = 1; i < amount; i++) {
		cout << "\n\tХарактеристика ракеты " << i + 1 << "\n"
			<< "\nВведите кол-во необходимого топилва для взлета:\t";
		cin >> fuel;
		cout << "\nВведите кол-во энергии затраченной на взлет:\t";
		cin >> E;
		cout << "\nВведите массу ракеты:\t";
		cin >> mass;
		cout << "\nВведите полезную массу:\t";
		cin >> umass;
		cout << "\nВведите максимальную скорость ракеты:\t";
		cin >> speed;

		if (fuel < min_fuel) {
			min_fuel = fuel;
			number_rocket[0] = i;
		}
		if (E < min_E) {
			min_E = E;
			number_rocket[1] = i;
		}
		if (mass < min_mass) {
			min_mass = mass;
			number_rocket[2] = i;
		}
		if (umass > max_umass) {
			max_umass = umass;
			number_rocket[3] = i;
		}
		if (speed > max_speed) {
			max_speed = speed;
			number_rocket[4] = i;
		}
	}

}

int main(){

	setlocale(LC_ALL, "rus");

	int number_rocket[4];
	int amount, min_fuel = 0, min_E = 0, min_mass = 0, max_umass = 0, max_speed = 0;

	enter(number_rocket, amount, min_fuel, min_E, min_mass, max_umass, max_speed);

	cout << "\n\n\tИдеальная ракета будет с характеристиками:"
		<< "\nМинимально затраченное топливо:\t" << min_fuel << "\tу ракеты #:" << number_rocket[0] + 1
		<< "\nМинимальная энергия для взлета:\t" << min_E << "\tу ракеты #:" << number_rocket[1] + 1
		<< "\nМинимальная масса ракеты:\t" << min_mass << "\tу ракеты #:" << number_rocket[2] + 1
		<< "\nМаксимальная полезная масса:\t" << max_umass << "\tу ракеты #:" << number_rocket[3] + 1
		<< "\nМаксимальная скорость ракеты:\t" << max_speed << "\tу ракеты #:" << number_rocket[4] + 1 << endl;

	system("pause");
	return 0;
}
  • Вопрос задан
  • 151 просмотр
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 3
@tugo
Эти переменные оформите в с структуру.
int number_rocket[4];
  int amount, min_fuel = 0, min_E = 0, min_mass = 0, max_umass = 0, max_speed = 0;

Структуру передавайте в функцию по ссылке
Ответ написан
CityCat4
@CityCat4 Куратор тега C
//COPY01 EXEC PGM=IEBGENER
Можно, в принципе, передавать пять указателей, но это криво и громоздко. В таких случаях делают, как сказал tugo - структуру, передать указатель на структуру и в функции делать с ней, что надо
Ответ написан
Комментировать
Почитайте про передачу аргументов в функцию. Вкратце: бывает по значению и по указателю (ссылке). В языке С возможно только по значению. Но значением можеть быть указатель на переменную. В языке С++ можно ещё и по ссылке.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы