Enviado em 30/05/2015 - 19:11h
// Versão 3
#include <stdio.h>
#include <stdlib.h>
#define MAX_ALUNOS 21
struct TipoAluno {
char nome[21];
float media;
// float matricula;
};
// protótipos das funções
float solicitaNota(void);
float calculaMedia(float nota1, float nota2);
void exibeAluno(struct TipoAluno aluno);
void finalizaPrograma(void);
float matricula;
int num;
// programa principal com as chamadas das funções criadas
int main(void)
{
// As variáveis criadas aqui dentro (chamadas de variáveis locais) não são
// visíveis em outras funções. Variáveis declaradas fora de qualquer função
// são chamadas de variáveis globais.
// Se houver necessidade de acessar uma variável dentro de outra função
// deve-se passa-la como argumento como acontece com: calculaMedia e exibeAluno
{
for(; ;)
{
printf("\t\t\t\tCADASTRO DE ALUNOS\n");
printf("1 - Para Inserir dados dos Alunos\n");
printf("2 - Para Mostrar dados dos Alunos\n");
printf("0 - Sair\n");
scanf("%d",&num);
switch(num)
{
case 1: inserir();
break;
case 2: mostrar();
break;
case 0: exit(0);
default: puts("TENTE NOVAMENTE");
}
}
}
getchar();
}
void inserir (void)
{
struct TipoAluno alunos[21];
float nota1, nota2;
int i;
matricula=9999;
for(i=0; i < MAX_ALUNOS; i++) {
// printf("\nMatricula: ");
matricula=matricula+1;
//i=i;
fflush(stdin);
//scanf("%f", &matricula);
printf("\nMatricula: %.0f", matricula);
fflush(stdin);
printf("\nEntre com o nome do aluno: ");
fflush(stdin);
gets(alunos[i].nome);
printf("Entre com a primeira nota (0 a 10): ");
nota1 = solicitaNota();
printf("Entre com a segunda nota (0 a 10): ");
nota2 = solicitaNota();
alunos[i].media = calculaMedia(nota1, nota2);
gets(calculaMedia);
}
printf("\n\nExibicao dos dados:");
for(i=0; i < MAX_ALUNOS; i++)
mostrar(alunos[i]);
finalizaPrograma();
getche();
}
// Funções:
// solicita uma nota exigindo que a mesma esteja na faixa válida: 0 a 10
float solicitaNota(void) {
// a variável nota tem escopo local, ou seja ela só existe dentro desta função
float nota;
do {
scanf("%f", ¬a);
if(nota < 0 || nota > 10) {
printf("Erro, valor deve ser de 0 a 10 \n");
}
}while(nota < 0 || nota > 10);
return nota;
}
// calcula a média a partir de duas notas e pontos extras
// não permitindo que a média ultrapasse de 10
float calculaMedia(float nota1, float nota2) {
// a variável media tem escopo local, ou seja ela só existe dentro desta função
float media = ((nota1*0.4) + (nota2*0.6));
printf("Valor da Media: %.1f", media);
// não permite que o retorno seja maior que 10
if(media >= 6)
printf("\nAprovado \n");
else
printf("\nReprovado \n");;
}
// exibe os dados de uma aluno passado como argumento
void mostrar(struct TipoAluno aluno) {
printf("\n\nAluno: %s", aluno.nome);
printf("\nMedia: %.1f", aluno.media);
}
// função sem retorno, contendo comandos para finalizar o programa
void finalizaPrograma(void) {
printf("\n\n\n");
system("pause");
}
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Máquinas Virtuais com IP estático acessando Internet no Virtualbox
Instalar o Microsoft Edge no Slackware 15
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
crontab executar em tempos (1)
Formatando cartão de memoria que nao formata[AJUDA] (9)
Programa duplicado no "Abrir com" e na barra de pesquisa do ... (3)