0
Hello! So, I’m having problems with the variables "day" and "time". Although I make the required selection, the variable is not printed on the screen at the end of the program. I’ve made several changes but none of them have any effect, so I ask for your help!
Code:
int main(void){
setlocale(LC_ALL, "Portuguese");//habilita a acentuação para o português!
int escolha1, escolha2, escolhaD, menu, menu2, escolhaH,escolhaA, a[12][4], l, c, qtd, lucro, ocupados, Pvendas, condicao, confirmacao;
char cidade, hora, dia, preco;
qtd=0;//quantidade de assentos total
lucro=0;// lucro da empresa
ocupados=0;// Assentos ocupados
Pvendas=0; // Passagens vendidas
for (l=0;l<12;l++)
{
for (c=0;c<4;c++)
{
qtd++;
a[l][c] = qtd;
}
}
volta:
printf("\n=====================================================");
printf(" \n B E M V I N D O A I A L V I A G E N S");
printf("\n=====================================================");
printf("\n\nComo podemos ajudar você?: \n\n1 - Comprar passagem \n2 - Ver minhas passagens\n");
printf("\nEscolha sua opção: ");
scanf("%d", &menu);
system("cls"); //LIMPA TELA AO REALIZAR O METODO ACIMA
switch(menu){//Opções do menu principal
case 1:
printf("\n=====================================================");
printf("\n E S C O L H A S E U D E S T I N O");
printf("\n=====================================================");
printf("\n\n1 - Marudá \n2 - Salinas \n3 - Marituba \n4 - Castanhal\n");
printf("\n0- Voltar ao menu principal");
printf("\nEscolha sua opção: ");
scanf("%d", &menu2);
system("cls"); //LIMPA TELA AO REALIZAR O METODO ACIMA
switch(menu2){//Opções do segundo menu
case 1:
volta2:
printf("\n=====================================================");
printf("\n M A R U D Á");
printf("\n=====================================================");
printf("\nDias disponíveis:");
printf("\n1- 20/10/2017:");
printf("\n2- 01/11/2017:");
printf("\n3- 10/11/2017:");
printf("\n0- Voltar ao menu principal");
printf("\nEscolha sua opção: ");
scanf("%d", &escolhaD);// Varivel para o dia da viagem
char cidade[]="Marudá";
system("cls");//LIMPA TELA AO REALIZAR O METODO ACIMA
if(escolhaD >3 )
{
system("cls");//LIMPA TELA AO REALIZAR O METODO ACIMA
printf("\nOpção inválida, favor tentar novamente!");
goto volta2;
system("cls");//LIMPA TELA AO REALIZAR O METODO ACIMA
}
else
{
if(escolhaD==1){
char dia[]="20/10/2017";//guardar a data da viagem
} else{
if(escolhaD==2){
char dia[]="01/11/2017";//guardar a data da viagem
}
else{
if(escolhaD==3){
char dia[]="10/11/2017";//guardar a data da viagem
}
else{
if(escolhaD==0){
goto volta;
}
}
}
}
printf("\nHorários disponíveis:");
printf("\n1- 06:30");
printf("\n2- 08:30");
printf("\n3- 10:00");
printf("\n4- 14:00");
printf("\n0- voltar para o menu principal");
printf("\nEscolha sua opção: ");
scanf("%d", &escolhaH);
system("cls");//LIMPA TELA AO REALIZAR O METODO ACIMA
}
if(escolhaH==1){
char hora[]="06:30";
}
else{
if(escolhaH==2){
char hora[]="08:30";
}
else{
if(escolhaH==3){
char hora[]="10:00";
}
else{
if(escolhaH==4){
char hora[]="14:00";
}
}
}
}
if(escolhaH==0){
goto volta;
}else{
volta4:
printf(dia);
printf("\nEscolha seu assento:\n");
for (l=0;l<12;l++)
{
for (c=0;c<4;c++)
{
if (a[l][c]==0 || a[l][c]==20 || a[l][c]==30 )
{
printf("[ x] ");
}
else
{
printf("[ %d] ", a[l][c]);
}
}
printf("\n");
}
printf("\n0- Voltar ao menu principal:\n");
printf("\nEscolha seu assento:");
scanf("%d", &escolhaA);
system("cls");//LIMPA TELA AO REALIZAR O METODO ACIMA
}
if(escolhaA==0){
goto volta;
}
else{
if(escolhaA==20 || escolhaA==30){
printf("\nVocê escolheu um assento já vendido, favor tentar novamente!");
goto volta4;
}
else{
printf("\nCondições especiais:");
printf("\n1- Não possuo. Valor da passagem: R$20,00 ");
printf("\n2- Sou estudante. Valor da passagem: R$10,00 ");
printf("\n3- Sou Idoso (Acima de 60 anos). Valor da passagem: R$00,00 ");
printf("\n0- Voltar ao menu principal:\n");
printf("\nEscolha seu assento:");
scanf("%d", &condicao);
}
}
if(condicao==0){
goto volta;
}
else{
if(condicao==1){
printf("\nConfirme dados da passagem:");
printf("\nDestino: ");
printf(cidade);
printf("\nData:");
printf(dia);
printf("\nHorário:");
printf(hora);
printf("\nAssento: %d", escolhaA );
printf("\n\n1-Confirmar dados");
printf("\n\n2-Cancelar");
scanf("%d", confirmacao);
}
}
if(confirmacao==1){
lucro ++;
Pvendas ++;
for (l=0;l<12;l++)
{
for(c=0;c<4;c++)
{
if (a[l][c]==escolhaA)
{
a[l][c]=0;
}
}
}
goto volta;
}
break;
case 2:
printf("\n=====================================================");
printf("\n S A L I N A S");
printf("\n=====================================================");
break;
case 3:
printf("\n=====================================================");
printf("\n M A R I T U B A");
printf("\n=====================================================");
break;
case 4:
printf("\n=====================================================");
printf("\n C A S T A N H A L");
printf("\n=====================================================");
break;
default:
printf("\n\nOpção inválida! Por favor, verifique a opção e tente novamente!");
printf("\n");
}//Fim do segundo menu
break;
//printf("\n\nOpção inválida! Por favor, verifique a opção e tente novamente!");
//printf("\n");
//break;
case 2:
printf("\n=====================================================");
printf("\n P A S S A G E N S A D Q U I R I D A S");
printf("\n=====================================================");
printf("\n\nDestino: VITÓRIA-ES");
printf("\nHorário = 08:00");
printf("\nPrevisão de chegada = 12:00");
printf("\n\n A IAL deseja a você uma excelente viagem!");
break;
default :
printf("\n\nOpção inválida! Por favor, verifique a opção e tente novamente!");
printf("\n");
goto volta;
break;
}//Fim do menu principal
return 0;
}
This code is very confusing, trying to fix it is not the solution. You need to learn every concept well with smaller codes to then do something like this. You can solve the problem of this code, but you will learn everything wrong.
– Maniero
This project is for this weekend and my college gave this deadline right on time and we didn’t even have much contact with the language (This code was done with a lot of research, but, honestly, vague by the time we were spent). Would it be too complicated to solve the code problems? Or it is better to try to even start from 0?
– Allan Lobo
Starting with the
goto
. They are bad practice and certainly do not need them to structure themselves properly.– Isac
Do you have a project until the end of the week, @Allanlobo? So, how about following some tips for writing code for the reader? The first is that if you need to indicate to whom you refer a block end, then you have a very large block. It needs to be obvious that the main menu block ends there, or that the secondary menu ends there. Another point is that no code after the
goto
is executed. This operation is formally known as unconditional deviation, which means it will divert the execution flow and ready, it will not execute the command below, but indicated by the label– Jefferson Quesado