Ir ao conteúdo

Posts recomendados

Postado

Pessoal bom dia!

 

Estou com dificuldade nessa atividade, do trabalho da faculdade alguém poderia me ajudar a corrigir.

 

Se resumi em duas partes, a primeira:

 

Faça um algoritmo em linguagem C com as seguintes funcionalidades:

·         Receba um registro, com dois campos, como dados de entrada. 

·         O primeiro campo é um vetor que vai armazenar o nome do aluno.

·         O segundo campo é uma variável do tipo inteiro que vai armazenar o RU do aluno (2137650).

·         Imprime na tela os dados armazenados na estrutura.

 

Obs.: esse código eu já escrevi e rodou 100%. Segue o código:

 

#include <stdio.h>

int main()
{
    printf("       Atividade prática - Linguagem de programação UNINTER - 2019\n\n");
    
int x; // Declara a variavel numero
char nome[20]; // declara variavel do nome
printf("Digite o nome do aluno: \n"); 
scanf(" %[^\n]s", nome); // Lê e grava o nome ler tambem os espaçõs

printf("Digite o RU do aluno: \n");
scanf(" %d", &x); // Ler e grava o Ru digitado

printf("O nome do aluno: %s\n", nome); //Imprime na tela o nome.

printf("RU do aluno: %d\n", x); //Imprime na tela o RU


return 0;
}

 

O meu problema vem da segunda parte:

Porém, agora, declare um ponteiro para a estrutura de dados heterogênea. No momento da leitura dos dados e da impressão na tela, use o ponteiro para buscar o conteúdo dos campos. Imprima na tela também o RU (2137650)  na tela.

 

Novo código para segunda parte:

 

 

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

int main (void)
{
    struct dados_do_aluno 
    {
        char *nome
        int ru;
    };

typedef struct dados_do_aluno;
aluno a1;
aluno *a = &a1;

a->nome = (char*)malloc(sizeof(char*)*60);

printf ("digite o nome do aluno:");
fgets(a->nome, 60, stdin);
printf ("digite o RU do Aluno:");
printf ("nome do aluno: %sRU do Aluno: %d\n", a->nome, a->ru);
printf("\n\n\n");
system("pause");

return 0;
    
}
 

Erros:

C:\Users\clb143820\Documents\ATV PRATICA LP\Exercico 4 ATV pratica LP.cpp    In function 'int main()':

8    9    C:\Users\clb143820\Documents\ATV PRATICA LP\Exercico 4 ATV pratica LP.cpp    [Error] expected ';' at end of member declaration

12    16    C:\Users\clb143820\Documents\ATV PRATICA LP\Exercico 4 ATV pratica LP.cpp    [Warning] 'typedef' was ignored in this declaration

13    1    C:\Users\clb143820\Documents\ATV PRATICA LP\Exercico 4 ATV pratica LP.cpp    [Error] 'aluno' was not declared in this scope

14    8    C:\Users\clb143820\Documents\ATV PRATICA LP\Exercico 4 ATV pratica LP.cpp    [Error] 'a' was not declared in this scope

14    13    C:\Users\clb143820\Documents\ATV PRATICA LP\Exercico 4 ATV pratica LP.cpp    [Error] 'a1' was not declared in this scope

 

 

Utilizando o programa DEV C++.

 

Postado

Leia as mensagens de erro elas normalmente indicam bem o problema...

 

19 minutos atrás, Thiago Pomponet disse:

8    9    C:\Users\clb143820\Documents\ATV PRATICA LP\Exercico 4 ATV pratica LP.cpp    [Error] expected ';' at end of member declaration

 

Ou seja, na linha 8 foi apontado que é esperado um ; no fim da declaração de um membro da struct, então note que na linha 7 você não colocou ; depois de "char *nome"...

 

 

20 minutos atrás, Thiago Pomponet disse:

12    16    C:\Users\clb143820\Documents\ATV PRATICA LP\Exercico 4 ATV pratica LP.cpp    [Warning] 'typedef' was ignored in this declaration

13    1    C:\Users\clb143820\Documents\ATV PRATICA LP\Exercico 4 ATV pratica LP.cpp    [Error] 'aluno' was not declared in this scope

 

Na linha 12 typedef foi ignorado e na linha 13 diz que o tipo 'aluno' não foi declarado nesse escopo, logo o problema é que você não definiu o tipo aluno, ou seja na linha do typedef você queria definir struct dados_do_aluno como um tipo de nome aluno, mas esqueceu de colocar o nome do tipo.

  • Obrigado 1
Postado

@isrnick Velho obrigado!

 

Mais ainda tenho um problema. Partindo do pre suposto que eu sou leigo e estou  aprendendo agora, eu entendi o que você quis dizer mas não enxerguei como corrigir, poderia ser mais especifico?

  • Curtir 2
Postado

@isrnick Você foi mais rápido! na resposta, entendi depois que faltava declarar "aluno" e faltava ";"!

 

ta cheio de erro a estrutura do código! mais vou corrigir também!

 

 

obrigado!

adicionado 25 minutos depois
23 minutos atrás, Thiago Pomponet disse:

@isrnick Você foi mais rápido! na resposta, entendi depois que faltava declarar "aluno" e faltava ";"!

 

ta cheio de erro a estrutura do código! mais vou corrigir também!

 

 

obrigado!

amigo fiz umas alteações pra tentar corrigir o erro e estou  esbarrando em outro erro. pode me ajudar?

 

o código fico  assim:

 

 

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

int main (void)
{
    struct dados_do_aluno 
    {
        char *nome;
        int ru;
    };
int ru;
typedef struct dados_do_aluno aluno;
aluno a1;
aluno *a = &a1;

a->nome = (char*)malloc(sizeof(char*)*60);

printf ("digite o nome do aluno:");
fgets(a->nome, 60, stdin);
printf("\n\n\n");
printf ("digite o RU do Aluno:");
scanf("%d",&ru)
printf ("nome do aluno:", a->nome, a->ru);
printf("\n\n\n");
printf ("RU do aluno: %ds\n",ru);
printf("\n\n\n");

system("pause");

return 0;
    
}
 

erro:

 

23    1    C:\Users\clb143820\Documents\ATV PRATICA LP\Exercico 4 ATV pratica LP.cpp    [Error] expected ';' before 'printf'

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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

×
×
  • Criar novo...