Skip to content

Instantly share code, notes, and snippets.

@Bolinha1
Last active August 29, 2015 14:18
Show Gist options
  • Save Bolinha1/be874356b4a60901be23 to your computer and use it in GitHub Desktop.
Save Bolinha1/be874356b4a60901be23 to your computer and use it in GitHub Desktop.
struct in C
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Aluno
{
int ra;
char nome[50];
float nota1;
float nota2;
float media;
int situacao;
}aluno;
aluno * monta_array(quantidadeAlocar)
{
aluno *espacoAlocado;
espacoAlocado = (aluno *) malloc(quantidadeAlocar * sizeof(aluno));
return espacoAlocado;
}
float mediaAlunos(float nota1, float nota2){
float media;
media= (nota1 + nota2) /2;
return media;
}
aluno * insereAluno(quantidadeElementos)
{
int i;
aluno *a = monta_array(quantidadeElementos);
float media;
for(i = 0; i < quantidadeElementos; i++)
{
printf("Informe o ra do manolo.: \n ");
scanf("%d", &a[i].ra);
printf("Informe o nome do manolo.: \n ");
scanf("%s", a[i].nome);
printf("Informe a nota-1 do manolo.: \n ");
scanf("%2f", &a[i].nota1);
printf("Informe a nota-2 do manolo.: \n ");
scanf("%2f", &a[i].nota2);
media = mediaAlunos(a[i].nota1, a[i].nota2);
printf(" media eh.: %2f \n ", media);
if(media == 0)
printf("O aluno esta cursando \n ");
else if(media >= 6)
printf("O aluno esta aprovado \n ");
else
printf("O aluno esta reprovado \n");
}
return a;
}
void listarTodosAlunos(aluno a[], int quantidadeElementos)
{
float media;
int i;
for(i = 0; i < quantidadeElementos; i++)
{
printf("O ra do manolo é %d \n ", a[i].ra);
printf("O nome do manolo é %s \n ", a[i].nome);
printf("A nota-1 do aluno é %2f \n ", a[i].nota1);
printf("A nota-2 do aluno é %2f \n ", a[i].nota2);
media = mediaAlunos(a[i].nota1, a[i].nota2);
printf(" media eh.: %2f \n ", media);
}
}
void listarAlunosPorRA(aluno a[], int quantidadeElementos)
{
int i;
int ra;
int raEstrutura;
float media;
printf("Informe o ra do aluno: \n");
scanf("%d", &ra);
for(i = 0; i < quantidadeElementos; i++)
{
raEstrutura = a[i].ra;
if(raEstrutura == ra)
{
printf("O ra do manolo é %d \n ", a[i].ra);
printf("O nome do manolo é %s \n ", a[i].nome);
printf("A nota-1 do aluno é %2f \n ", a[i].nota1);
printf("A nota-2 do aluno é %2f \n ", a[i].nota2);
media = mediaAlunos(a[i].nota1, a[i].nota2);
printf(" media eh.: %2f \n ", media);
}
printf("Não existe aluno \n");
}
}
void listarAlunosPorNome(aluno a[], int quantidadeElementos)
{
int i;
int verificaIgualdade;
char nome[100];
float media;
printf("Informe o nome do aluno");
scanf("%s", nome);
for(i = 0; i < quantidadeElementos; i++)
{
verificaIgualdade = strcmp(a[i].nome, nome);
if(verificaIgualdade == 0)
{
printf("O ra do manolo é %d \n ", a[i].ra);
printf("O nome do manolo é %s \n ", a[i].nome);
printf("A nota-1 do aluno é %2f \n ", a[i].nota1);
printf("A nota-2 do aluno é %2f \n ", a[i].nota2);
media = mediaAlunos(a[i].nota1, a[i].nota2);
printf(" media eh.: %2f \n ", media);
}
printf("Não existe aluno \n");
}
}
void ordenaCrescentePorRA(aluno a[], int quantidadeElementos){
aluno aux;
int i;
int j;
for(i = 0 ; i< quantidadeElementos; i++)
{
for(j= i + 1; j < quantidadeElementos; j++)
{
if(a[i].ra > a[j].ra)
{
aux= a[i];
a[i]= a[j];
a[j]= aux;
}
}
printf("O ra do manolo é %d \n ", a[i].ra);
printf("O nome do manolo é %s \n ", a[i].nome);
printf("A nota-1 do aluno é %2f \n ", a[i].nota1);
printf("A nota-2 do aluno é %2f \n ", a[i].nota2);
}
}
void ordenaDecrescentePorRA(aluno a[], int quantidadeElementos){
aluno aux;
int i;
int j;
for(i = 0 ; i< quantidadeElementos; i++)
{
for(j= i + 1; j < quantidadeElementos; j++)
{
if(a[i].ra < a[j].ra)
{
aux= a[i];
a[i]= a[j];
a[j]= aux;
}
}
printf("O ra do manolo é %d \n ", a[i].ra);
printf("O nome do manolo é %s \n ", a[i].nome);
printf("A nota-1 do aluno é %2f \n ", a[i].nota1);
printf("A nota-2 do aluno é %2f \n ", a[i].nota2);
}
}
int main()
{
int quantidade;
printf("Informe a quantidade de aluno ");
scanf("%d", &quantidade);
aluno *a;
a = insereAluno(quantidade);
//listarTodosAlunos(a, quantidade);
//listarAlunosPorNome(a, quantidade);
//listarAlunosPorRA(a, quantidade);
//ordenaCrescentePorRA(a, quantidade);
ordenaDecrescentePorRA(a,quantidade);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment