Porque meu código não funciona

24 respostas Resolvido
java
1

Ola amigos, vejam se entendem o problema

Porque este código abaixo apresenta erro:

Att

// Ler um vetor A com 10 elementos inteiros correspondentes as
// idades de um grupo de pessoas. Escreva um programa que
// determine e escreva a menor e a maior idades e suas respectivas
// posições.


import java.util.Scanner;

public class Exercicio04Aula07 {

    public static void main(String[] args) {
		
	Scanner sc = new Scanner(System.in);

    int[] a = new int[10];

	int maior = 0; 
	int menor = 9999; 
	int posicao_maior; 
	int posicao_menor;

    for( int contador=0; contador<10; contador++ ){

         System.out.println("Entre com a idade da pessoa %d: ", contador+1);
         a[contador] = sc.nextInt(); // "%d"
        
         for( a[contador] >= maior ){
            
            maior = a[contador];
            posicao_maior = contador+1;

         }

         for( a[contador] <= menor ){
            
            menor = a[contador];
            posicao_menor = contador+1;
        
         }
     }

      System.out.println("\n\nA maior idade eh %d, na posicao %d.", maior, posicao_maior);
      System.out.println("\n\nA menor idade eh %d, na posicao %d.\n", menor, posicao_menor);
      // getch();

  }

}

24 Respostas

J

Esses 2 blocos deveriam ser if e não for!

1

Usei if, mas apresenta erro :confused:

J

Que tipo de erro?

1

o que significa o erro: error: class, interface, or enum expected? acompanhado de error: ‘<‘identifier’>’ expected ?

J
Solucao aceita

Esse erro ocorre quando você faz o quê exatamente?

Fiz um teste aqui a classe executa normalmente!

import java.util.Scanner;

public class Exercicio04Aula07 {

    public static void main(String[] args) {
		
	    Scanner sc = new Scanner(System.in);

        int[] a = new int[10];

	    int maior = 0; 
   	    int menor = 0; 
	    int posicao_maior = 0; 
	    int posicao_menor = 0;

        for(int contador=0; contador<10; contador++){
            System.out.printf("Entre com a idade da pessoa %d: ", contador+1);
            a[contador] = sc.nextInt();
        
            if(a[contador] > maior){
               maior = a[contador];
               posicao_maior = contador;
            }

            if(a[contador] < menor){
               menor = a[contador];
               posicao_menor = contador;
            }
        }
        System.out.printf("\n\nA maior idade eh %d, na posicao %d.", maior, posicao_maior);
        System.out.printf("\n\nA menor idade eh %d, na posicao %d.", menor, posicao_menor);
   }
}
1

Quando acesso o prompt de comando do Windows.

J

E como você está fazendo para executar a classe via cmd?
Quais comando está utilizando?

1

javac Exercicio04Aula07.java


java Exercicio04Aula07

Aparece os erros

  • error: illegal start of expression
  • not a statement
  • Exercicio04Aula07.java:45: error: reached end of file while parsing
J

Quando você executa o comando:
javac Exercicio04Aula07.java

Ele gera o arquivo Exercicio04Aula07.class normalmente?

1

Não, apresenta muitos erros.

J

O seu arquivo está com o mesmo nome da sua classe?

Eu executei a classe conforme o código que te passei, aqui funcionou normal, você deve estar fazendo algum passo incorreto!

1

Arrumei agora, o problema era a indentação.

// Ler um vetor A com 10 elementos inteiros correspondentes as
// idades de um grupo de pessoas. Escreva um programa que
// determine e escreva a menor e a maior idades e suas respectivas
// posições.

import java.util.Scanner;

public class Exercicio04Aula07 {
public static void main(String[] args) {
		
	Scanner sc = new Scanner(System.in);
	
    int[] a = new int[10];
	int maior = 0; 
	int menor = 0; 
	int posicao_maior = 0; 
	int posicao_menor = 0;

        for(int contador=0; contador<10; contador++ ){
            System.out.printf("Entre com a idade da pessoa %d: ", contador+1);
            a[contador] = sc.nextInt();
        
            if( a[contador] >= maior ){
               maior = a[contador];
               posicao_maior = contador;
            }

            if(a[contador] <= menor){
               menor = a[contador];
               posicao_menor = contador;
            }
        }
        System.out.printf("\n\nA maior idade e %d, na posicao %d.", maior, posicao_maior);
        System.out.printf("\n\nA menor idade e %d, na posicao %d.", menor, posicao_menor);
   }
}
1

Esse código está certo? Eu não sei muito sobre Java.

J

Certo é relativo, se ele apresenta o resultado esperado pelo enunciado exercício está correto!

1

Existe outra forma de reescrever esse código?

J

Existe sim!

1

Como você faria?

J

Esqueceu de fechar a chave ou do ponto e vírgula.

1

Valeu pela informação. ^^

J

Eu faria da forma como te mandei o código em uma resposta anterior.

1

Um outro jeito seria:

// Ler um vetor A com 10 elementos inteiros correspondentes as
// idades de um grupo de pessoas. Escreva um programa que
// determine e escreva a menor e a maior idades e suas respectivas
// posições.

import java.util.Scanner;

public class Exercicio04Aula07 {
public static void main(String[] args) {
		
	Scanner sc = new Scanner(System.in);
	
        int[] a = new int[10];
        int maior, menor, contador, posicao_maior, posicao_menor;

        for(int contador; contador<10; contador++ ){
            System.out.printf("Entre com a idade da pessoa %d: ", contador+1);
            a[contador] = sc.nextInt();
        
            if( a[contador] >= maior ){
               maior = a[contador];
               posicao_maior = contador;
            }

            if(a[contador] <= menor){
               menor = a[contador];
               posicao_menor = contador;
            }
        }
        System.out.printf("\n\nA maior idade e %d, na posicao %d.", maior, posicao_maior);
        System.out.printf("\n\nA menor idade e %d, na posicao %d.", menor, posicao_menor);
   }
}
1

Posso fazer algo como?

if( a[contador] >= maior && a[contador] <= menor){  maior = a[contador]; posicao_maior = contador; menor = a[contador]; posicao_menor = contador;  }
S

Cara, não enrola, indentação não gera erros de compilação. :wink:

F
public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    int maior = 0, maiorPos = 0, menor = 100000, menorPos = 0;
    int vetorA[] = new int[10];
    for (int i = 0; i < 10; i++) {
        System.out.println("Digite uma idade!");
        vetorA[i] = scan.nextInt();
        if (vetorA[i] > maior) {
            maior = vetorA[i];
            maiorPos = (i + 1);
        }
        if (vetorA[i] < menor) {
            menor = vetorA[i];
            menorPos = (i + 1);
        }
    }
    System.out.println("Maior: " + maior + " na posição " + maiorPos);
    System.out.println("Menor: " + menor + " na posição " + menorPos);
}
Criado 1 de outubro de 2019
Ultima resposta 17 de dez. de 2019
Respostas 24
Participantes 5