[RESOLVIDO] Preciso saber o que está errado no meu código

package javaapplication1;

import java.util.Scanner;

/** Faça um programa que recebe a quantia de funcionários de uma loja e calcula o

  • total das vendas de todos os funcionários, e informe o nome e o valor vendido do

  • funcionário que mais vendeu e o do que menos vendeu.
    */
    public class vendas {
    public static void main (String [] args) {
    Scanner input=new Scanner(System.in);
    int x=0;
    double total=0,menor=0,maior=0;
    String maior_n =“a”, menor_n =“b”;
    String vendedor[]=new String[x];
    double totalvendas[]=new double[x];

    System.out.println(“Quantos vendedores trabalham nessa loja?”);
    x=input.nextInt();
    for(int a=0;a<x;a++){
    System.out.println("Informe o nome do "+(a+1)+ “° vendedor”);
    vendedor[a]=input.next();
    System.out.println(“Informe o valor da venda do “+vendedor[a]+”.”);
    totalvendas[a]=input.nextDouble();
    total=total+totalvendas[a];
    if(a==0){
    menor_n=vendedor[a];
    menor=totalvendas[a];
    }
    if(a==0){
    maior_n =vendedor[a];
    maior= totalvendas[a];
    }
    if(totalvendas[a]<menor){
    menor=totalvendas[a];
    menor_n=vendedor[a];
    }
    if(totalvendas[a]>maior){
    maior=totalvendas[a];
    maior_n=vendedor[a];

}}
for(int a=0;a<x;a++){
System.out.println(“O total das vendas é: R$”+total);
System.out.println(“O vendedor " +menor_n+ " teve o menor valor de vendas totalizando “+menor+”.”);
System.out.println(“O vendedor “+maior_n+” teve o maior valor de vendas totalizando “+maior+”.”);
}
}}

Nao espere que as pessoas encontrem o problema pra lhe ajudar a resolver o problema.

1 - Diga o seu problema detalhadamente.
2 - Poste o codigo.
3 - Aguarde a resposta.

Vai ser muito mais rapido e produtivo pra voce, talvez ja tivessem respondido :slight_smile:

Toda vez que eu executo ele, ele pede quantos funcionários tem na loja e eu informo normalmente, quando ele pede o nome do primeiro funcionário e eu informo, ele da um erro que não sei como resolver.

import java.util.Scanner;

public class vendas {

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    int x = 0;
    double total = 0, menor = 0, maior = 0;
    String maior_n = "a", menor_n = "b";
    String vendedor[] = new String[9999];
    double totalvendas[] = new double[9999];

    System.out.println("Quantos vendedores trabalham nessa loja ?");
    x = input.nextInt();
    for (int a = 0; a < x; a++) {
        System.out.println("Informe o nome do " + (a + 1) + "° vendedor");
        vendedor[a] = input.next();
        
        System.out.println("Informe o valor da venda do {}" + vendedor[a] + ".");
        totalvendas[a] = input.nextDouble();
        total = total + totalvendas[a];
        
        if (a == 0) {
            menor_n = vendedor[a];
            menor = totalvendas[a];
        }
        if (a == 0) {
            maior_n = vendedor[a];
            maior = totalvendas[a];
        }
        if (totalvendas[a] < menor) {
            menor = totalvendas[a];
            menor_n = vendedor[a];
        }
        if (totalvendas[a] > maior) {
            maior = totalvendas[a];
            maior_n = vendedor[a];

        }
    }
    for (int a = 0; a < x; a++) {
        System.out.println("O total das vendas é: R$" + total);
        System.out.println("O vendedor " + menor_n + " teve o menor valor de vendas totalizando " + menor + ".");
        System.out.println("O vendedor " + maior_n + "teve o maior valor de vendas totalizando " + maior + ".");
    }
  }
}

Seu problema estava dentro do seu array, quando voce digitava o nome ele explodia o array por nao ter espaço, aumentei pra 9999 e tudo certo. :slight_smile:

2 curtidas

Poderia declarar assim: double total, menor, maior; e int x; retirando = 0 ?

sim poderia, por padrao quando uma variavel nao e inicializada o java atribui a um double o valor “0.0” mas por bons constumes e sempre bom inicializar.

mas pode acontecer de algumas vezes a variavel PEDIR pra ser inicializada.

1 curtida

Pô, valeu aí, me ajudou muito <3.

1 curtida

Valeu :grinning: Posso fazer isso? String maior_n, menor_n; maior_n = “a”, menor_n = “b”?

Se colocar ponto de virgula entre as sentencas voce pode fazer sim, desta forma :

public static void main(String[] args) {

    String maior_n, menor_n; maior_n = "a"; menor_n = "b";
    System.out.println(maior_n + menor_n);

}
1 curtida

Obrigado :smiley:

1 curtida

pq double totalvendas[] = new double[9999]; e String vendedor[] = new String[9999]; ?

Voce esta dizendo que esse vetor vai conter 9999 indices, ou seja, ele tem um espaco de 9999 caracteres, numeros etc… mudando o tipo dele voce pode armazenar o que quiser…

double totalvendas[] = new double[9999]
totalvendas[0] = 5.5
totalvendas[1] = 8.2
totalvendas[2] = 1.5
totalvendas[3] = 9.0...........

por ai vai rs

1 curtida

obrigado pela informação :smiley: