Last active
August 29, 2015 14:18
-
-
Save Bolinha1/be874356b4a60901be23 to your computer and use it in GitHub Desktop.
struct in C
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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