Diogo Mata 0 Posted December 12, 2020 Report Share Posted December 12, 2020 (edited) Eu pus um for para calcular as situacoes tais como me foram pedidas no programa int meses[] = { 31, 28, 31,30, 31,30, 31,31 ,30,31,30,31}; int dadosAnuais[] = { 63, 45, 15, 74, 27, 36, 77, 25, 82, 87, 89, 48,100, 91, 98, 94, 85, 87, 31, 11, 64, 81, 26, 60, 86, 78, 30, 69, 59, 25, 64, 4, 73, 94, 85, 25, 40, 24, 77, 61, 97, 69, 57,100, 8, 20, 36, 15, 46, 84, 10, -2, -2, 8, 41, 49, 89, 78, 15, 12, 23, 24, 14, 14, 34, 92, 12, 16, 20, 26, 62, 89, -2, 4, 75, 83, 74, 58, 31, 31, 63, 10, 26, -3, 81, 27, 86, 20, 65, 8, 37, 51, 90, 63, 47, -1, 13, -1, 27, 2, 34, 63, 56, 28, 80, 30, 23, 4, 75, 26, 87, 92, 83, 42, 36, 10, 10, 50, 83, 37, 63, 27, 5, 66, 25, 45, 84, 19, 59, 9, 28, 32, 57, 46, 84, 73, 12, 98, 97, 94, 84, 59, 59, 63, 14, 21, 90, 89, 18, -2, 62, 86, 20, 62, 62, 36, 94, -1, 5, 57, 32, 36, 89, 31, 41, -2, 64, 16, 30, 77, 56, 46, 75, 13, 49, 87, 24, 30, 65, 79, 1, 31, 53, 17, 17, 56, 5, 14, 68, 41, 78, 76, 52, 25, 72, 53, 81, 44, 65, 17, 68, 49, 88, 82, 83, 76, 30, 17, 69, 72, 36, 21, 64, -1, 16, 33, 83, -2, 79, 47, 90, 40, 82, 57, 40, 73, 83, 53, 8, 60, 86, 99, 78, 99, 35, 85, 8, 65, 40, 96, 71, 12, -3, 58, 55, 3, 81, 44, 16, 41, 43, 63, 74, 16, -3, 87, 76, 44, 38, 4, 83, 33, 55, 82, 65, 64, -2, 62, 72, 62, 8,100, 71, 95, 24, 89, 17, -2, 60, 78, 85, 92, 98, 47, 46, 58, 5, 4, 73, 35, 25, 33, 38, 77, 46, 5, 9, 98, 22, 14, 51, 72, 36, 23, 73, 56, 90, 87, 56, 77, 32, 5, 23, 31, 49, 86, 73, 86, 60, 11, 64, 90, 31, 47, 64, 17, 79, 11, 97, 63, 58, 53, 34, 57, 24, 65, 28, 30, 67, 61, 22, 44, 68, 85, 40, 67, 66, 21, 62, 88, 27, -3, -3, 45, 94, 79, 97, 34, 38, 9, 50, 67, 4, 87, 4 }; Scanner teclado = new Scanner(System.in); System.out.print("Ver estatisticas de que mês?\n" + " | 1-Janeiro 2-Fevereiro |\n" + " | 3-Março 4-Abril |\n" + " | 5-Maio 6-Junho |\n" + " | 7-Julho 8-Agosto |\n" + " | 9-Setembro 10-Outubro |\n" + " |11-Novembro 12-Dezembro |\n" + " |Digite -5 para observar as estatísticas anuais.|\n" + " |Digite -4 para terminar a execução do programa.|\n"); int opcao=teclado.nextInt(); do { switch(opcao) { case -4: System.out.println("FIM");break; } if (opcao==-5 || opcao>=1 && opcao<=12) { if (opcao==-5) { diaInicial=0; diaFinal=dadosAnuais.length; }else { for(int k=0; k < opcao; k++) { diaFinal =diaFinal + meses[k]; diaInicial = diaFinal - meses[opcao-1]; } for (int dia=diaInicial; dia < diaFinal; dia++) { if (dadosAnuais[dia] > max) { max = dadosAnuais[dia]; piorDia=dia; }if(dadosAnuais[dia]<min && dadosAnuais[dia]>0) { min = dadosAnuais[dia]; melhorDia=dia; }if(dadosAnuais[dia]==-1) { situacao1+=1; }if(dadosAnuais[dia]==-2) { situacao2+=1; }if(dadosAnuais[dia]==-3) { situacao3+=1; }soma=situacao1 + situacao2 + situacao3; } System.out.println("Pior dia: " + (piorDia+1) +" com " + min); System.out.println("Melhor dia: " + (melhorDia+1) + " com " + max); System.out.println("Total de dias que ocorreu a situação #1: "+ situacao1); System.out.println("Total de dias que ocorreu a situação #2: "+ situacao2); System.out.println("Total de dias que ocorreu a situação #3: "+ situacao3); System.out.println("Total de dias sem recolhas de dados: "+ soma); System.out.print("Ver estatisticas de que mês? "); opcao=teclado.nextInt(); } }else { System.out.print("Opção errada : "); opcao=teclado.nextInt(); } }while(opcao!=-4); System.out.println("FIM"); Porém no final quando introduzo outro valor vai somar ao que ja tenho no anterior como tiro isso? Edited December 12, 2020 by thoga31 GeSHi Link to post Share on other sites
thoga31 569 Posted December 12, 2020 Report Share Posted December 12, 2020 Inicializa as variáveis com um valor neutro no início de cada iteração do ciclo while. Cumprimentos. Knowledge is free! Link to post Share on other sites
Diogo Mata 0 Posted December 13, 2020 Author Report Share Posted December 13, 2020 19 horas atrás, thoga31 disse: Inicializa as variáveis com um valor neutro no início de cada iteração do ciclo while. Cumprimentos. Obrigado Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now