Когда пользователь выбирает 1, а затем вводит сумму пожертвования, я хочу, чтобы программа снова запустилась и показала меню
просто выполните
for(;;) {
printf(" 1 - Donate\n");
printf(" 2 - Invest\n");
printf(" 3 - Print balance\n");
printf(" 4 - Exit\n");
printf("\n");
//scans menu choice
scanf("%d", &menu_option);
if(menu_option==1)
{
printf("How much do you want to donate?\n");
scanf("%lf", &donation);
donations_made++;
current_Balance = initial_Balance + donation;
// NO BREAK
}
else {
.... management of other cases
break;
}
}
или если вы предпочитаете
do {
printf(" 1 - Donate\n");
printf(" 2 - Invest\n");
printf(" 3 - Print balance\n");
printf(" 4 - Exit\n");
printf("\n");
//scans menu choice
scanf("%d", &menu_option);
if(menu_option==1)
{
printf("How much do you want to donate?\n");
scanf("%lf", &donation);
donations_made++;
current_Balance = initial_Balance + donation;
}
// ... management of other cases
} while (menu_option==1);
Но вы уверены, что не хотите переделывать также в случаях 2 и 3? В этом случае замените while (menu_option==1);
на while (menu_option != 4);
или в первом предложении сделайте break
только тогда, когда menu_option
равно 4
Я также рекомендую вам проверить возвращаемое значение scanf("%d", &menu_option);
, чтобы быть уверенным. во входных данных было указано действительное целое число и было установлено menu_option