Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvida no exercicio declarando uma struct

O seguinte erro aparece: [Error] 'nome' was not declared in this scope [Error] 'telefone' was not declared in this scope Aqui está o código:

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

int main(){
    struct registro{
        char nome[20];
        char telefone[20];
    };

    typedef struct registro r;

    printf("Digite seu nome:\n");
    scanf(" %c", &nome.r);
    printf("Digite seu telefone:\n");
    scanf(" %s", &telefone.registro);
    printf("Nome: %s\n", nome.registro);
    printf("Telefone: %s\n", telefone.registro);
}
3 respostas

Olá,

Perceba que quando você usa typedef você cria um novo tipo. Assim, neste trecho:

typedef struct registro r;

Você cria um tipo chamado r. Logo, você pode declarar variáveis do tipo r:

r minhaVariavel;

E usar:

scanf(" %c", &minhaVariavel.nome);
scanf(" %s", &minhaVarivael.telefone);

Té mais,

Mesmo seguindo os passos sugeridos, o mesmo erro aparece.

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

int main(){
    struct registro{
        char nome[20];
        char telefone[20];
    };

    typedef struct registro r;

    r reg;

    printf("Digite seu nome:\n");
    scanf(" %c", &reg.nome);
    printf("Digite seu telefone:\n");
    scanf(" %s", &reg.telefone);
    printf("Nome: %s\n", nome.registro);
    printf("Telefone: %s\n", telefone.registro);
}
solução!

Olá,

Sim, pois estas linhas ainda estão erradas:

printf("Nome: %s\n", nome.registro);
printf("Telefone: %s\n", telefone.registro);

Té mais,

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software