Estou tendo dificuldades para corrigir um erro em meu programa. Ele funciona da seguinte forma:
Um vetor de caracteres é lido pela função fgets - um nome de pessoa.
Ao final este nome deve ser exibido ao lado da palavra reprovado ou aprovado, porém ao imprimir os resultados, alguns saem quebrados (o nome em uma linha e o resto da string em outra linha).
Segue o código:
#include<stdio.h>#include<stdlib.h>#define MAX 4struct aluno{char nome[42];int idade;float altura;float notas[4];};typedefstruct aluno ALUNO;
ALUNO getAluno();float media(ALUNO);void exibirResultado(ALUNO);int main(void){//declaração de variáveis.
ALUNO aluno[MAX];int i;for(i =0; i < MAX; i++){
printf("Cadastro do %do. aluno\n", i +1);
aluno[i]= getAluno();}for(i =0; i < MAX; i++){
exibirResultado(aluno[i]);}return0;}
ALUNO getAluno(){//declaração de variáveis.
ALUNO aluno;int i;
printf("Nome: ");
fgets(aluno.nome,42, stdin);
printf("Idade: ");
scanf("%d",&aluno.idade);while(getchar()!='\n');
printf("Altura: ");
scanf("%f",&aluno.altura);while(getchar()!='\n');for(i =0; i <4; i++){
printf("%da. Nota: ", i +1);
scanf("%f",&aluno.notas[i]);while(getchar()!='\n');}return aluno;}float media(ALUNO aluno){float m =0;int i;for(i =0; i <4; i++){
m += aluno.notas[i];}return m /4;}void exibirResultado(ALUNO al){if(media(al)>=7){
printf("%s ----> aprovado\n", al.nome);}else{
printf("%s ----> reprovado\n", al.nome);}}
Pergunta
asantos38
Boa noite a todos.
Estou tendo dificuldades para corrigir um erro em meu programa. Ele funciona da seguinte forma:
Um vetor de caracteres é lido pela função fgets - um nome de pessoa.
Ao final este nome deve ser exibido ao lado da palavra reprovado ou aprovado, porém ao imprimir os resultados, alguns saem quebrados (o nome em uma linha e o resto da string em outra linha).
Segue o código:
título com mais clareza
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.