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
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Encontre seus arquivos facilmente com o Drill
Mouse Logitech MX Ergo Advanced Wireless Trackball no Linux
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
VMs e Interfaces de Rede desapareceram (12)
Instalação do drive do adaptador wiffi (7)