Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
Wesley B.

Dúvida exercício em C

Recommended Posts

Olá pessoal, estou criando este tópico para saber se algum de vocês podem me auxiliar no seguinte problema.

Estou iniciando agora em Estruturas e em meio a um dos exercício me deparei com um problema: Após compilar (sem erros ou warnings) o código, fui executá-lo, porém já de início o programa pula o gets() (mesmo eu colocando o fflush(stdin)) e depois acaba dando crash. Não consigo encontrar o problema no código, portanto gostaria que alguém me auxiliasse. Segue o código:

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

typedef struct
{
char nome[50];
long int matricula;
float nota;
} Taluno;

int main()
{
setlocale(LC_ALL, "");
Taluno *aluno;
int i, n, maior, menor;
float soma = 0;

printf("Digite a quantidade de alunos: ");
scanf("%d", &n);

aluno = (Taluno *)malloc(n * sizeof(Taluno));
if(aluno = NULL){
printf("Memória insuficiente!");
return -1;
}
for(i=0;i<n;i++){
printf("Digite o nome do %dº aluno: ", i+1);
fflush(stdin);
gets(aluno[i].nome);
printf("Digite a matrícula deste aluno: ");
scanf("%li", &aluno[i].matricula);
printf("Digite a nota deste aluno: ");
scanf("%f", &aluno[i].nota);
soma += aluno[i].nota;
if(i==0){
maior = i;
menor = i;
continue;
}
if(aluno[i].nota > aluno[maior].nota){
maior = i;
}
else{
if(aluno[i].nota < aluno[menor].nota)
menor = i;
}
printf("\n");
}

printf("\nO melhor aluno da sala é o %s(%li) que obteve nota %f\nO pior aluno da sala é o %s(%li) que obteve nota %f\nA média da turma foi de %f pontos.\n\n", aluno[maior].nome, aluno[maior].matricula, aluno[maior].nota, aluno[menor].nome, aluno[menor].matricula, aluno[menor].nota, (float)soma / n);
free(aluno);
system("PAUSE");
return 0;
}

Estou utilizando o Code::Blocks como IDE, e o objetivo do código é imprimir o melhor e o pior aluno da sala, e também a média da sala.

-------------------------------------------------------------------------------------

Hm, acabei de encontrar o erro. O erro se encontra no momento em que verifica se a alocação dinâmica foi feita com sucesso (if(aluno = NULL)), o correto seria if(aluno == NULL).

Não consegui deletar o tópico, então desculpem o incômodo. :wacko:

Editado por Wesley B.

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

Entre para seguir isso  





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

×