Ir para conteúdo
Fórum Script Brasil
  • 0

Erro em algumas linhas


Boey-sama

Pergunta

Olá. Sou estudante e comecei recentemente. Eu tenho que fazer um trabalho, só que ao compilar, está sendo identificado um erro. alguém poderia me dizer qual o erro?

O programa é bem simples e, como não vimos strings, foi pedido que usássemos char para nomes, cadastrando apenas uma letra. E as variáveis serão substituídas sempre que for cadastrado algo. Eu ainda não continuei porque fica dando erro na parte do case 1, que está em vermelho. Ele disse que estou usando %d, que é pra uma variável inteira, para um endereço reservado para valores do tipo int *. Sendo não faz sentido dar esse erro, sendo que a variável é do tipo int e %d é do tipo int. Alguém poderia me dizer o que tem de errado. Tem uns outros erros que eu já identifiquei, mas só esse que eu não sei como corrigir. 

 

#include<stdio.h>

void main(){
    int opcao = 1, opcao1, opcao2, opcao3, idade, contato;
    char nome;
    while (opcao != 4){
        printf("\nLivraria Assis\n");
        printf("\nMenu de Clientes - 1;\n");
        printf("Menu de Livros - 2;\n");
        printf("Livros Vendidos - 3\n");
        printf("Sair do programa - 4.\n");
        scanf("%d", &opcao);
    
        switch (opcao){
    
            case 1:
            printf("\nMenu de Clientes\n");
            while (opcao1 != 3){
                printf("\nCadastro de Cliente - 1;");
                printf("\nVizualizar Cliente Cadastrado - 2");
                printf("\nRetornar ao Menu Principal - 3");
                scanf("%d", opcao1);
                if (opcao1 == 1){
                    printf("\nCadastro de Cliente\n");
                    printf("\nDigite o nome do cliente: ");
                    scanf("%c", &nome);
                    printf("\nDigite a idade do cliente: ");
                    scanf("%d", idade);
                    printf("\nDigite o número de contato do cliente: ");
                    scanf("%d", &contato);
                }
                else{
                    if (opcao1 == 2){
                        printf("\nCliente Cadastrado\n");
                        printf("\nNome: %c", nome);
                        printf("\nIdade: %d", idade);
                        printf("Contato: %d", contato);
                    }
                    else{
                       if (opcao1 == 3){
                           break;
                       }
                       else{
                           printf("Digite um valor válido");
                       }
                       
                       
                    }
                    
                    
                }
            }
            

            break;
            case 2: 
            printf("\nMenu de Livros\n");

            break;
            case 3:
            printf("\nLivros Vendidos\n");

            break;
            default:
            printf("Escolha uma das opções válidas");
            break;
    }
    }
    

}

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
4 horas atrás, Boey-sama disse:

scanf("%d", opcao1);

O correto é scanf("%d", &opcao1); O operador é utilizado para passar o endereço de memória da variável, em vez de somente o seu valor. A função scanf espera o endereço da variável opcao (um ponteiro do tipo int *) para que consiga alterar o seu valor, mas você está passando apenas o seu valor (tipo int).

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...