эй, я написал код c, который включает в себя различные функции, однако у меня возникают проблемы в конце моего кода. это основная функция моего кода
int main() {
do {
printf("-- Wind turbine power calculator -- \n");
/*defining variables for each function,
Cp = performance coefficient,
Ng = generator efficiency,
Nb = gearbox efficiency,
V = velocity,
hA = horizontal area,
vA = vertical area,
d = rotor diameter,
h = rotor height,
a = altitude,
t = type of turbine */
double t, V, Cp, Ng, Nb, p, Pwr, d, a, h, hA, vA, A;
char ch, n, y, N, Y;
t = getType();
d = getDiameter();
h = getHeight();
a = getAltitude();
V = getVelocity();
Cp = getPerformance();
Ng = getGenerator();
Nb = getGearbox();
p = density(a);
hA = hArea(d);
vA = vArea(d, h);
/*setting the area in the power equation to equal the calculated vertical or horizontal area depending on the input from user*/
if (t == 'v' || t == 'V') {
A = vA;
} else if (t == 'h' || t == 'H') {
A = hA;
}
/*calculating the power of the wind turbine calling on the functions within the code*/
Pwr = A * p * Cp * 0.5 * Ng * Nb * V * V * V;
printf("The turbine power is %0.0lf KW\n", Pwr);
/*asking the user if they want to continue the program, if not the program will end*/
printf("\nDo you want to continue (y/n):");
scanf("%c", & ch);
if (ch == 'n' || ch == 'N')
break;
printf("\nThe program has been terminated\n");
}while (1);
return 0;
}
У меня проблемы с последней частью
/*asking the user if they want to continue the program, if not the program will end*/
printf("\nDo you want to continue (y/n):");
scanf("%c", & ch);
if (ch == 'n' || ch == 'N')
break;
printf("\nThe program has been terminated\n");
}while (1);
return 0;
}
когда код поступает в эту часть, он просто автоматически повторяется и не позволяет пользователю ввести свой ввод, а затем решить, должен ли он снова запускаться или завершаться.
есть идеи как это исправить ?? Я думаю, что один из способов сделать это со свойством scanf, но я не уверен на 100%.
Спасибо за помощь