leaves the test alone

-2

When I type the second option it will only go until the car brand does not enter the year and does not give any compilation errors whatsoever

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include <string.h>

main ()
{
    int opcao;

    printf("################################");
    printf("\n#       seja bem vindo         #");
    printf("\n#                              #"); 
    printf("\n################################");

    struct cliente
    {
        int codigo;
        char nome[50];
        char endereco[50];
        float salario;
    };

    struct cliente cadastro;
    cadastro.codigo;
    cadastro.nome;
    cadastro.endereco;
    cadastro.salario;

    struct veiculo
    {
        int placa;
        char marca;
        int ano;
        char combustivel;
    };

    struct veiculo cadastro1;
    cadastro1.placa;
    cadastro1.marca;
    cadastro1.ano;
    cadastro1.combustivel;

    do
    {
        printf("\n1 - Cadastrar Novo Cliente");
        printf("\n2 - Cadastro Novo Veiculo");
        printf("\n3 - Calcular o Valor Da Venda Do Ve?culo");
        printf("\n0 - Finalizar\n");
        printf("\n7 - Finalizar\n");
        printf(" \nSelecione uma opcao por favor: ");
        scanf("%d", &opcao);

        if(opcao==1)
        {
            system("cls");

            printf("\nVoce selecionou a opcao 1 - Cadastrar Novo Cliente\n");

            printf("\nDigite o codigo Para o cliente: ");
            scanf(" %d", &cadastro.codigo);
            fflush(stdin);

            printf("\nDigite o Nome Do Cliente: ");
            gets(cadastro.nome);
            fflush(stdin);

            printf("\nDigite o Endereco Do Cliente: ");
            gets(cadastro.endereco);
            fflush(stdin);

            printf("\nDigite o Salario Do Cliente: ");
            scanf("%.2f",cadastro.salario);
            printf("\n\n");
            fflush(stdin);
            printf("Cliente Cadastrado");
            fflush(stdin);
            system("cls");
            printf("%s",cadastro.nome);
            printf(" \nPrecione Enter Para Volta ao Menu Principal.... ");
            getchar();
            system("cls");
            main(); 
        }
        else
        {
            system("cls");
            if(opcao==2)
            {
                printf("\nVoce selecionou a opcao 2 - Cadastro Novo Ve?culo\n");

                printf("\nDigite a Placa do veiculo: ");
                scanf(" %d", &cadastro1.placa);
                fflush(stdin);

                printf("\nDigite a Marca Do Veiculo: ");
                scanf("%s", cadastro1.marca);
                fflush(stdin);

                printf("\nDigite o Ano Do Veiculo:");// erro apartir daqui
                scanf("%d", cadastro1.ano);
                fflush(stdin);

                printf("\nDigite o Tipo de Combustive(FLEX OU GASOLINA): ");
                scanf("%s",cadastro1.combustivel);
                printf("\n\n"); 
            }
            else
            {
                if(opcao==3)
                {
                    printf("\n\n velocidade do motorista: 3");
                    printf ("\n\n velocidade máxima permitida: ");
                    printf("\n\n valor da multa será:");
                }
            }           
        }
    }
    while (opcao != 0 || opcao < 0);

    return 0;     
}
    
asked by anonymous 23.11.2018 / 17:08

1 answer

0

There is no compile error, but there are run-time errors. Note that you are trying to store a string (a string) in a property set to char marca , which can store a single character.

It should be char marca[50]

    
23.11.2018 / 17:33