C - Problems with printing [closed]

0

Hello! So I'm having trouble with the variables "day" and "time". Even though I make the necessary selection, the variable is not printed on the screen at the end of the program. I made several changes but none of them had 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;
}
    
asked by anonymous 20.10.2017 / 01:45

2 answers

1

There's a lot, but a LOT wrong thing in your code. He would have to do it almost entirely. This is entirely based on the XGH patterns.

I point here the three Achilles beads that are doing not showing the date and time at the end.

  • You are declaring strings in the wrong way.
  • This is redeclaring the same variable names in different parts of the code.
  • You are assigning strings to variables in the wrong way.
  • Apronfudando:

  • When you want to store strings in C, you must declare them as follows:

     char dia[tamanho];
    

    ie

     char dia[16];
    
  • When you re-declare a variable within the { } keys, they only exist in that context. Declare the variables only once, not every time you need to use them.

  • And linked to 2, instead of redeclaring the variables use the function strcpy to assign a string to a variable like this:

    strcpy(dia, "20/10/2017");
    
  • By doing these corrections your program will work, but it still contains several errors.

    Do not even the Keys, if you want to be someone in life, devour the books.

        
    20.10.2017 / 15:17
    -4

    The line that you try to print the day variable put this:

    printf("%s",dia);
    
        
    20.10.2017 / 12:35