Ir ao conteúdo

Posts recomendados

Postado

Pessoal estou tentando criar uma struct que le o nome do aluno, e o imprime junto com o resultado final que é aprovado ou reprovado mas esta dando erro.

								/*seminario
							Comandos = if, switch
							Funções = soma, troca
							Vetores e tipo construído
							Como criar e preencher estrutura*/
#include <stdio.h>
#include <stdlib.h>

typedef struct{ //Tentativa de criar e preencher a struct
	float Nome;
}Nome;
Nome SetNome(float Nome){
	printf("Digite o nome do Aluno\n");
	scanf("%f", &Nome);
}

float media (int n, float *vnotas); //Declarando a função media
int main (void)
{
float vnotas[4];
int semestre;
float media_notas;															
int i;

	for (i = 0; i < 4; i++) //Leitura das medias
{
	printf("Digite os valores das notas: ");
	scanf("%f", &vnotas[i]);
  }
printf("Digite o ano de ingresso para saber em que semestre o aluno esta:\n");
scanf("%d", &semestre);
 if(semestre <2017){
 	printf("error 404\n");
 	printf("Semestre inserido invalido\n");
 }
	switch( semestre ){
		case 2017 :
		printf("O aluno esta no Segundo semestre\n");
		break;
		case 2018 :
		printf("O aluno esta no Primeiro semestre\n");
		break;	
	}
//Chamada da função
media_notas = media(4,vnotas); 
   printf ( "\nMedia = %.1f \n", media_notas );
  
	// Se a media for maior que 7, imprime que o aluno esta aprovado 
	if(media_notas >=7){
		printf("Aluno Aprovado\n");
		printf("O aluno pode prosseguir para o proximo semestre\n");}
	// Se a media for menor que 7, imprime que o aluno esta repovado 
	else{
		printf("Aluno Reprovado\n");   		
   		printf("O aluno deve refazer a materia ou fazer a resolucao\n\n");}
system("pause");
return 0;
}
/*Função para cálculo da média 
   Parâmetros: 
      Recebe a quantidade de elementos n
      Recebe o endereço inicial do vetor notas em *vnotas
   Retorno: 
     Retorna a media na variavel m */
float media (int n, float *vnotas)
{
int i;
//Realiza a soma das notas   
float m = 0, soma = 0;
}
	for (i = 0; i < n; i++)
		soma = soma + vnotas[i]; 
//Realiza a divisão das notas pelo numero de elementos
m = soma / n; 
//Retorna a media
	return m;
}

 

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

struct Aluno
{
    char Nome[100];
    float Notas[4];
};

// Calcula a média das notas
float media(Aluno al)
{
    return (al.Notas[0] + al.Notas[1] + al.Notas[2] + al.Notas[3]) / 4;
}

int main()
{
    Aluno al;
    
    printf("Insira o nome do aluno: ");
    
    // Pega o nome do aluno
    fgets(al.Nome, 100, stdin);
    
    // Para limpar o \n do nome, já que a função fgets captura o \n
    strtok(al.Nome, "\n");
    
    // Pega as quatros notas dos alunos
    for (int i = 0; i < 4; i++)
    {
        printf("Insira a nota %i do aluno: ", i + 1);
        scanf("%f", &al.Notas[i]);
    }
    
   // Chama a função media para calcular a media das quatro notas do aluno
   float med = media(al);
	
   // Se o aluno atingiu a média vai mostrar APROVADO, caso contrario reprovado e mostra a média que o aluno obteve
   printf("Aluno %s foi %s com uma media de: %.2f\n", al.Nome, (med >= 7.0f) ? "APROVADO" : "REPROVADO", med);
    
   return 0;
}

Exercício da faculdade que eu tinha feito, bem parecido com esse seu exercício, também calcula a média e mostra o nome do aluno em uma estrutura, você pode usar como exemplo. a unica diferença é que ele usa estrutura(que acho que é o que você está tentando fazer e que também não tem o semestre, mas você pode adicionar, é bem fácil)
 

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