Ir ao conteúdo

Posts recomendados

Postado

Olá pessoal, tenho um exercício em que preciso escrever o nome de 5 alunos e suas notas. Logo o programa tem que retornar o aluno que tirou a maior nota e a média das 5 notas.

 

Sou iniciante em C, por isso devem ter vários erros no código ou sei lá o que mais. hehehe

Aqui segue:

 

#include <stdio.h>
 
int main(){
 int i;
 char alunom[31];
 float media, maior;
 struct aluno{
    char nome[31];
    float nota;
 };
 
struct aluno aluno[5];
 
for (i=1;i<=5;i++){
   printf("Digite o nome do aluno.\a");
   scanf("%s",aluno.nome);
   printf("Digite a nota do aluno.\a");
   scanf("%f",&aluno.nota);
   if (aluno.nota>maior){
      maior=aluno.nota;
      alunom=aluno.nome;-----------------------Linha do erro;
   }
   media=media+aluno.nota;
}
media=media/5;
printf("O aluno com maior nota é: %s, tirou: %5.2f",alunom,maior);
printf("A média das notas é: %5.2f",media);
 
}
 
O erro é esse:
 
[Error] invalid array assignment.
 
 
Desde já agradeço a ajuda.
Postado

Acontece erro porque você está tentando fazer a atribuição de uma forma não suportada pela linguagem C.

Para passar o conteúdo de aluno.nome para alunom, use a função strcpy de string.h. Por exemplo

strcpy(alunom, aluno[i].nome);
Postado

Hey!

 

Simplificar usando um struct aluno, também me pareceu, uma alternativa viável.

Observe:

Invés de:

alunom=aluno[i].nome;-----------------------Linha do erro;

Tem-se:

alunom=aluno[i];

Hint: Para tando declare alunom como sendo do tipo  struct aluno

 

 

 

 

 

;)

  • 2 semanas depois...
Visitante
Este tópico está impedido de receber novas respostas.

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...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!