Ir ao conteúdo
  • Cadastre-se
Fabio Aragao

Erro em struct com vetor

Recommended Posts

Boa noite pessoal, 

 

Estou fazendo um struct com vetor simples e gostaria de saber o porque do erro que está ocorrendo.

 

#include<stdio.h>

struct alunos
{
    char nome[10];
    char cpf[11];
    int nota;
};

main()
{
    struct alunos cadastro_alunos[3];
    int i;

    for (i = 0; i <= 2; i++)
    {
        printf("Digite o nome do aluno: ");
        scanf("%s", cadastro_alunos[i].nome);
        printf("Digite o CPF do aluno: ");
        scanf("%s", cadastro_alunos[i].cpf);
        printf("Digite a nota deste aluno: ");
        scanf("%d", cadastro_alunos[i].nota);
        printf("\n\n");
    }
    printf("\n\n");
    printf("O nome do aluno 1 e: %s\n", cadastro_alunos[0].nome);
    printf("O CPF do segundo aluno e: %s\n", cadastro_alunos[1].cpf);
    printf("A nota do aluno 3 e: %d\n", cadastro_alunos[2].nota);

}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
28 minutos atrás, Fabio Aragao disse:

Boa noite pessoal, 

 

Estou fazendo um struct com vetor simples e gostaria de saber o porque do erro que está ocorrendo.

 


#include<stdio.h>

struct alunos
{
    char nome[10];
    char cpf[11];
    int nota;
};

main()
{
    struct alunos cadastro_alunos[3];
    int i;

    for (i = 0; i <= 2; i++)
    {
        printf("Digite o nome do aluno: ");
        scanf("%s", cadastro_alunos[i].nome);
        printf("Digite o CPF do aluno: ");
        scanf("%s", cadastro_alunos[i].cpf);
        printf("Digite a nota deste aluno: ");
        scanf("%d", cadastro_alunos[i].nota);
        printf("\n\n");
    }
    printf("\n\n");
    printf("O nome do aluno 1 e: %s\n", cadastro_alunos[0].nome);
    printf("O CPF do segundo aluno e: %s\n", cadastro_alunos[1].cpf);
    printf("A nota do aluno 3 e: %d\n", cadastro_alunos[2].nota);

}

 

boa noite amigo! voce esqueceu de colocar o &para fazer a leitura do scanf .

segue o codigo alterado:

#include<stdio.h>

struct alunos
{
    char nome[10];
    char cpf[11];
    int nota;
};

main()
{
    struct alunos cadastro_alunos[3];
    int i;

    for (i = 0; i <= 2; i++)
    {
        printf("Digite o nome do aluno: ");
        scanf("%s", &cadastro_alunos.nome);
        printf("Digite o CPF do aluno: ");
        scanf("%s", &cadastro_alunos.cpf);
        printf("Digite a nota deste aluno: ");
        scanf("%d", &cadastro_alunos.nota);
        printf("\n\n");
    }
    printf("\n\n");
    printf("O nome do aluno 1 e: %s\n", cadastro_alunos[0].nome);
    printf("O CPF do segundo aluno e: %s\n", cadastro_alunos[1].cpf);
    printf("A nota do aluno 3 e: %d\n", cadastro_alunos[2].nota);

}
 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perfeito, mas por acidente, coloquei apenas no ultimo scanf e funcionou da mesma forma.... ai fiquei mais confuso...

colocar & em todas as linhas scanf funcionou, mas se deixar apenas no ultimo tambem funciona....

Compartilhar este post


Link para o post
Compartilhar em outros sites

somente ponha & en variáveis comuns tipo int, float, double. Com strings não deve se anteceder por &. Uma string guarda uma relação com ponteiros, adiante de ponteiros , arrays e matrizes não se coloca &. Quando chegar na parte de ponteiros você ja entenderá o por quê.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×