Итак, эта программа предназначена для бронирования мероприятий. У меня было несколько проблем с этой программой, и я не могу придумать лучшего решения. программа не завершена. Я написал программу только для случая A. Я объяснил две проблемы ниже.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
int i, j, day, x;
char session[10];
int array[2][5] = {{0,0,1,0,1},{1,1,0,0,0}};
char response,ans,choice;
printf("\n**************** WELCOME TO NAT RESERVATION SYSTEM ****************");
printf("\n\nCHOOSE WHAT TO DO");
printf("\n\n\t\tA.\t\tBOOK THE THEATER\n");
printf("\t\tB.\t\tCHECK RESERRVATIONS\n");
printf("\t\tC.\t\tREMOVE RESERVATIONS\n");
printf("\t\tD.\t\tCALCULATE INCOME\n");
printf("\t\tE.\t\tEXIT\n");
printf("\n\nYOUR RESPONSE\t\t: ");
scanf(" %c",&response);
switch (response){
case 'A': printf("\n\nBOOK THE THEATER"); break;
case 'B': printf("\n\nCHECK RESERRVATIONS"); break;
case 'C': printf("\n\nREMOVE RESERVATIONS"); break;
case 'D': printf("\n\nCALCULATE INCOME"); break;
case 'E': printf("\n\nEXIT"); break;
}
первая проблема: третий scanf не позволяет мне ничего вводить. Даже если я изменю его на scanf ("% c", & ans); происходит то же самое. Я попытался удалить пробел во 2-м сканировании, но когда я это сделаю, он не позволит мне ввести что-либо, но может ввести в 3-й сканф (надеюсь, вы понимаете мой вопрос)
if (response == 'A'){
printf("\n\nCHOOSE A DAY : ");
scanf("%d",&day);
j = day -1;
printf("YOUR SESSION : ");
scanf(" %c",session); //WHEN I REMOVE THE SAPCE IT DOESNT LET ME INPUT ANYTHING
if(session[0] == 'M'){
i = 0;
}
if(session[0] == 'A'){
i = 1;
}
if(array[i][j] == 0){
printf("\n\nTHE SESSION IS AVAILABLE.\nDO YOU WANT TO CONFIRM THE BOOKING?(Y/N) : ");
scanf("%c",&ans); //3RD SCANF IF I KEEP A SPACE IN THE SECOND SCANF, I CANT INPUT ANYTHING HERE
2-й проблема: массив [i] [j] равен 0 перед бронированием, поэтому после подтверждения бронирования массив [i] [j] должен быть 1. В качестве примера, если я хочу зарезервировать утреннюю сессию (i = 0) дня 1 ( j = 0). После того, как я ввел данные, он показывает, что сеанс доступен. Затем я подтверждаю бронирование, массив [0] [0] должен быть равен 1. Но опять же, если я введу те же данные, это покажет, что сеанс доступен. но я хочу, чтобы он отображал, что сеанс недоступен.
if(ans == 'Y' || ans == 'y'){
array[i][j] = 1;
printf("\nYOUR BOOKING WAS SUCCESSFUL!\n\n");
main();
}
}
if(array[i][j] == 1){
printf("\n\nTHE SESSION IS NOT AVAILABLE.");
printf("\nDO YOU WANT TO TRY ANOTHER SESSION?(Y/N): ");
scanf(" %c",&ans);
if(ans == 'Y' || ans == 'y'){
main();
}else if(ans == 'N' || ans == 'n'){
printf("THANK YOU! HAVE A NICE DAY!");
exit(0);
}
}
}
return 0;
}
любая помощь приветствуется. Спасибо