Diogo Mata Posted December 12, 2020 at 03:58 PM Report Share #620666 Posted December 12, 2020 at 03:58 PM 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? Link to comment Share on other sites More sharing options...
thoga31 Posted December 12, 2020 at 06:25 PM Report Share #620669 Posted December 12, 2020 at 06:25 PM Inicializa as variáveis com um valor neutro no início de cada iteração do ciclo while. Cumprimentos. Knowledge is free! Link to comment Share on other sites More sharing options...
Diogo Mata Posted December 13, 2020 at 01:37 PM Author Report Share #620672 Posted December 13, 2020 at 01:37 PM 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 comment Share on other sites More sharing options...
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