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");
}
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Dica para encontrar diversos jogos Indies criativos
Instalando Discord no Debian 13
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
paginação dos favoritos não funciona no vivaolinux[BU... (4)
Driver da nvidia e desempenho em jogos (2)
A escola é altamente ineficiente e ineficaz! (13)
Sincronização Horario Estação de trabalho máquinas domínio com samba N... (2)