Я делаю программу, которая берет данные от различных ракет (кроме двигателей первой ступени) и вычисляет dV с новым, заменяющим двигателем. Вот код:
#include <stdio.h>
#include <math.h>
main () {
int choice;
do {
printf ("\n1-Register rocket data");
printf ("\n2-Change already registered data");
printf ("\n3-Delete rocket data");
printf ("\n4-Show registered rockets");
printf ("\n5-Register substitute engine data");
printf ("\n6-Calculate dV with substitute engine");
printf ("\n0-End");
scanf ("%d", &choice);
switch(choice) {
case 1:
dV();
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
}
} while(choice != 0);
}
dV () {
int count, x, i;
float rockets[] , dV, wetMass, dryMass, Isp;
printf ("How many rockets will be registered?");
scanf ("%d", &x);
while (i == 1) {
for (count=1; count <= x; count++)
printf ("\n\nWet Mass(kg): ");
scanf ("%f", &wetMass);
fflush (stdin);
printf ("Dry Mass: ");
scanf ("%f", &dryMass);
fflush (stdin);
printf ("Specific Impulse(Seconds): ");
scanf ("%f", &Isp);
fflush (stdin);
printf ("\nType 1 to add a stage or 0 to end the process: ");
scanf ("%d", &i);
dV = (Isp * 9.8 * log(wetMass/dryMass) + dV);
dV = rockets[x++];
}
}
Ошибка:
ошибка: отсутствует размер массива в 'ракетах' (строка 50)
Предупреждения:
предупреждение: неявное объявление функции 'dV' [-Wimplicit-function-декларация} (строка 22) предупреждение: по умолчанию тип возвращаемого значения - int (Wimplicit-int) (строка 47)
Первый вопрос: Как сделать Я устраняю эти ошибки и предупреждения?
Второй вопрос: как я могу создать вектор с определенным пользователем количеством элементов? Пользователь должен иметь возможность зарегистрировать столько ракет, сколько захочет. Мой план состоит в том, чтобы вычислить dV для каждой ракеты и сохранить его в элементе вектора rocket [] после того, как будут предоставлены замещающие данные двигателя.
Третий вопрос: как я могу изменить значение уже определенного элемента в векторе?
Четвертый вопрос: как я могу назначать векторные элементы постепенно? Под этим я подразумеваю: данные первой зарегистрированной ракеты должны go соответствовать ракетам [0], вторые - ракетам [1] и т. Д. c.
редактировать: я забыл добавить это после строки 55
printf ("\ntype 1 to add a stage or 2 to end the process: ");
scanf ("%f", &i);