Ir ao conteúdo
  • Cadastre-se

C Transformar vetor em struct


Posts recomendados

Pessoal gostaria de saber se é possivel transformar meu vetor vnotas[4] em uma struct 

 

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

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);
  }
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
//Realiza a divisão das notas pelo numero de elementos
m = soma / n; 
//Retorna a media
    return m;
}

Link para o comentário
Compartilhar em outros sites

Antes de continuar fazendo perguntas passe por aqui:

 

adicionado 5 minutos depois

Não entendo muito bem com o que você se refere com transformar vetor em struct. Existe varias formas de fazer isso, você pode criar uma struct com uma nota dentro, criar uma struct com todas as notas dentro, criar uma struct com todas as notas de um aluno para depois criar um array de structs, e por aí vai a coisa. Explique que você quer realizar e lhe ajudamos.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Não entendi muito bem, você quer transformar os vetores nota para ficar armazenado em um vetor de estrutura?

 

Talvez seja isso?

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

struct Notas
{
    float nota;
}notas[4];

float media (int n, Notas* nts); //Declarando a função media

int main (void)
{
    int semestre;
    float media_notas;                                                            
    int i;

    for (i = 0; i < 4; i++) //Leitura das medias
    {
        printf("Digite os valores das notas: ");
        scanf("%f", &notas[i].nota);
      }
    
    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, notas); 
       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");
    }
    else // Se a media for menor que 7, imprime que o aluno esta repovado 
    {
        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, Notas* nts)
{
    int i;
    //Realiza a soma das notas   
    float m = 0, soma = 0;
    
    for (i = 0; i < n; i++)
        soma = soma + nts[i].nota; 
    
    //Realiza a divisão das notas pelo numero de elementos
    m = soma / n; 
    
    //Retorna a media
    return m;
}

 

Link para o comentário
Compartilhar em outros sites

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

 

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

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!