Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
Cristian Kirsch Foesch

C Como uma fazer struct

Recommended Posts

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;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente um nome não é do tipo float, é um conjunto de caracteres(vetor de um char).

Exemplo: char nome[30];

Compartilhar este post


Link para o post
Compartilhar em outros sites
agora, cyer disse:

Primeiramente um nome não é do tipo float, é um conjunto de caracteres(vetor de um char)

Sim sim ja corrigi, mas o que esta causando o erro, e como faco para imprimir junto com o resultado

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
#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)
 

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

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

×