Created
April 11, 2017 20:17
-
-
Save ricardobarantini/36752e56d7a5ec155852676e1a4d7a03 to your computer and use it in GitHub Desktop.
Prova de C.
This file contains 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 <locale.h> | |
#include <string.h> | |
#define DIM 1 | |
#define MESES 5 | |
// Protótipos | |
void recebeValores (int filiais[DIM][1020]); | |
void incrementaQuantidadeSaquesMes (int mes); | |
void exibeQuantidadeSaquesMes (void); | |
int quantidadeSaques (int mes); | |
void somaSaquesPorMes (int filiais[DIM][1020]); | |
int menorValorSaques (); | |
int mesMaiorSomatorio (); | |
void mesesSemSaque (void); | |
void imprimeMesesSemSaque (void); | |
// Variáveis globais | |
int saques[MESES]; | |
int somaSaques[MESES]; | |
int mesesSemNenhumSaque[MESES]; | |
int main () { | |
setlocale(LC_ALL, "portuguese"); | |
int filiais[DIM][1020]; | |
recebeValores(filiais); | |
exibeQuantidadeSaquesMes(); | |
somaSaquesPorMes(filiais); | |
// Imprime o menor valor dos saques | |
printf("O menor valor dos saques é: %i\n", menorValorSaques()); | |
// Imprime o mês com maior valor somatório | |
printf("O mês com maior valor somatório é: %i\n", mesMaiorSomatorio()); | |
// Imprime meses sem saque | |
imprimeMesesSemSaque(); | |
} | |
// Recebe os valores | |
void recebeValores (int filiais[DIM][1020]) { | |
int i = 0, j = 0, l = 0, valor; | |
// Realiza até o fim das filiais | |
for (j = 0; j < DIM; j++) { | |
printf("Informe o valores da filial %i:\n", j+1); | |
do { | |
printf("Informe um valor de saque no mês %i: ", i); | |
scanf("%i", &valor); | |
if (valor >= 0) { | |
// Salva o valor na matriz | |
filiais[j][l] = valor; | |
// Incrementa a quantidade de saques no mês | |
incrementaQuantidadeSaquesMes(i); | |
} else { | |
// Finaliza o mês | |
filiais[j][l] = -1; | |
// Muda de mês | |
i++; | |
} | |
// Incrementa coluna | |
l++; | |
// Se chegar no fim do vetor, finaliza o do while | |
if (l == 1020) { | |
break; | |
} | |
} while (i <= MESES); | |
// Mensagem de aviso de mudança de filial | |
printf("Filial %i preenchida, indo para a filial %i:\n", j+1, j+2); | |
// Reseta os meses | |
i = 0; | |
} | |
return; | |
} | |
// Incrementa quantidade de saques no mës | |
void incrementaQuantidadeSaquesMes (int mes) { | |
saques[mes] += 1; | |
return; | |
} | |
// Exibe quantidade de saques no mês | |
void exibeQuantidadeSaquesMes (void) { | |
int mes; | |
printf("Qual mês quer verificar a quantidade de saques?: "); | |
scanf("%i", &mes); | |
printf("A quantidade de saques no mês de %i foram: %i\n", mes, quantidadeSaques(mes)); | |
} | |
// Retorna a quantidade de saques | |
int quantidadeSaques (int mes) { | |
return saques[mes]; | |
} | |
// Soma todos saques | |
void somaSaquesPorMes (int filiais[DIM][1020]) { | |
int i, j, l; | |
for (i = 0; i < MESES; i++) { | |
for (j = 0; j < DIM; j++) { | |
if (filiais[j][l] >= 0) { | |
somaSaques[i] = somaSaques[i] + filiais[j][l]; | |
} | |
l++; | |
} | |
} | |
return; | |
} | |
// Imprime o menor valor dos saques | |
// Função porca porém funciona | |
int menorValorSaques () { | |
int janeiro = somaSaques[0]; | |
int fevereiro = somaSaques[1]; | |
int marco = somaSaques[2]; | |
int abril = somaSaques[3]; | |
int maio = somaSaques[4]; | |
int junho = somaSaques[5]; | |
if (janeiro < fevereiro && janeiro < marco && janeiro < abril && janeiro < maio && janeiro < junho) { | |
return janeiro; | |
} else if (fevereiro < janeiro && fevereiro < marco && fevereiro < abril && fevereiro < maio && fevereiro < junho) { | |
return fevereiro; | |
} else if (marco < janeiro && marco < fevereiro && marco < abril && marco < maio && marco < junho) { | |
return marco; | |
} else if (abril < janeiro && abril < fevereiro && abril < marco && abril < maio && abril < junho) { | |
return abril; | |
} else if (maio < janeiro && maio < fevereiro && maio < marco && maio < abril && maio < junho) { | |
return maio; | |
} else { | |
return junho; | |
} | |
} | |
int mesMaiorSomatorio () { | |
int janeiro = somaSaques[0]; | |
int fevereiro = somaSaques[1]; | |
int marco = somaSaques[2]; | |
int abril = somaSaques[3]; | |
int maio = somaSaques[4]; | |
int junho = somaSaques[5]; | |
if (janeiro > fevereiro && janeiro > marco && janeiro > abril && janeiro > maio && janeiro > junho) { | |
return 0; | |
} else if (fevereiro > janeiro && fevereiro > marco && fevereiro > abril && fevereiro > maio && fevereiro > junho) { | |
return 1; | |
} else if (marco > janeiro && marco > fevereiro && marco > abril && marco > maio && marco > junho) { | |
return 2; | |
} else if (abril > janeiro && abril > fevereiro && abril > marco && abril > maio && abril > junho) { | |
return 3; | |
} else if (maio > janeiro && maio > fevereiro && maio > marco && maio > abril && maio > junho) { | |
return 4; | |
} else { | |
return 5; | |
} | |
} | |
// Verifica meses sem saque | |
void mesesSemSaque (void) { | |
int i, j = 0; | |
for (i = 0; i < MESES; i++) { | |
if (somaSaques[i] <= 0) { | |
mesesSemNenhumSaque[j] = i; | |
j++; | |
} | |
} | |
return; | |
} | |
void imprimeMesesSemSaque (void) { | |
int i; | |
printf("O meses sem saque foram: "); | |
for (i = 0; i < MESES; i++) { | |
printf("%i ", mesesSemNenhumSaque[i]); | |
} | |
return; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment