Ir ao conteúdo

Passando struct por parametro


Eder Cuer

Posts recomendados

Postado

Olá galera, estava fazendo alguns exercicios de c e me deparei com a seguinte questão:

"Elabore uma função que receba como parâmetro uma struct aluno, que contem o RA, o nome e suas 4 notas, retorne com a media entre as notas do aluno."

Eu estou tendo problemas ao passar uma struct por parametro para uma função... ta ai meu codigo



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


main()
{
struct aluno{
int ra;
char nome[50];
float nota[4];
};

typedef struct aluno a;

int i;
float media=0;

puts("Digite o nome do aluno: ");
fflush(stdin);
gets(a.nome);

printf("Digite o RA do aluno: ");
scanf("%d", &a.ra);

printf("\n\nDigite as 4 notas do aluno: ");
for(i=0; i<4; i++)
{
scanf("%d",&a.nota[i]);
}

media_aluno(&a.nota,&media);

printf("A media do aluno %c => %d",a.nome, media);

getch();
}

Eu acabei apagando a minha função, o problema realmente é saber como passar a bendita struct por parametro

Postado

struct SS{
int um_int;
float um_float;
}

int uma_func (struct SS s) /* struct é passada por valores */
{
return s.um_int;
}

int duas_func (struct SS *s) /* struct é passada por referência */
{
return s->um_int;
}

int main() {
struct SS my_s;
/*...*/
uma_func (my_s);
duas_func (&my_s);
/*...*/
}

Postado

Eae galera consegui resolver... ta ai:



#include <conio2.h>
#include <stdio.h>

struct aluno
{
int ra;
char nome[50];
float nota[4];
};
typedef struct aluno alu;

float aluno_media(aluno x, float *m)
{
int i;
for(i=0; i<4; i++)
{
*m += x.nota[i];
}
*m /= 4;
}

main()
{

aluno alu;
int ra, i;
float media=0;

puts("Digite o nome do aluno: ");
fflush(stdin);
gets(alu.nome);

puts("\nDigite o RA: ");
scanf("%d", &alu.ra);

puts("\nDigite as 4 notas: ");
for(i=0; i<4; i++)
{
scanf("%f",&alu.nota[i]);
}

aluno_media(alu,&media);

printf("\nAluno: %s, RA: %d, Media: %.2f",alu.nome, alu.ra, media);

getch();
}

Valeu!!!

Arquivado

Este tópico foi arquivado e está fechado para 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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!