Comment puis-je faire en sorte qu'il y ait le même nombre de questions que l'utilisateur saisit le nombre d'emplois. Par exemple, disons que vous avez travaillé dans 5 emplois, je veux que le programme demande à l'utilisateur de demander, Votre salaire pour le travail 1 Job 2 Job 3 Job 4 Job 5, et ainsi de suite. Mon code en ce moment est.

 import java.util.Scanner;
public class Personal_Info {
public static void main(String[] args) {


     Scanner Scanner = new Scanner(System.in);

    int Salary1;
    int Salary2;
    int Salary3;
    int TotalJobs;
    int Average;
    String Name;
    int Largest;
    int Smallest;
    int Sum;


     System.out.print("What is your first name?: ");
    Name = Scanner.nextLine();

    System.out.print("How many jobs have you had?: ");
    TotalJobs = Scanner.nextInt();

    System.out.print("Enter income from job #1: ");
    Salary1 = Scanner.nextInt();

    System.out.print("Enter income from job #3: ");
    Salary2 = Scanner.nextInt();

    System.out.print("Enter income from job #3: ");
    Salary3 = Scanner.nextInt();
    Sum = Salary1 + Salary2 + Salary3;
    Average = Sum / TotalJobs;

     Largest = Salary1;
    Smallest = Salary1;

    if(Salary2 > Largest)
        Largest = Salary2;

    if(Salary3 > Largest)
        Largest = Salary3;

    if(Salary2 < Smallest)
        Smallest = Salary2;

    if (Salary3 < Smallest)
        Smallest = Salary3;

    System.out.println("Hello " + Name + "You've had " + TotalJobs + " jobs. " + "The highest paying job paid is " + Largest + ". The lowest paying job paid is "+ Smallest + ". The average is " + Average + ".");

Mais cela ne fonctionnerait pas car il ne demandera à l'utilisateur que trois fois, les tâches 1, 2 et 3.

Si j'essaye,

for (int x = 0; x<TotalJobs; x++){ 
 System.out.print("How many jobs have you had?: "); 
 number = Scanner.nextInt();

Je ne sais pas comment obtenir la valeur la plus élevée / la plus petite / moyenne à partir de cette valeur stockée qui serait «nombre».

2
Sayajin Rose 28 nov. 2017 à 08:11

3 réponses

Meilleure réponse

J'espère que ceci vous aidera

    class SalaryCalculate{
    public static void main(String args[]){
    int totalJobs,jobcounter,maxSalary,minSalary,averageSalary=0;;
    int[] jobsincome;
    String name;
    Scanner sc= new Scanner(System.in);
    System.out.println("Enter your name");
    name=sc.nextLine();
    System.out.println("How many jobs you had");
    totalJobs= sc.nextInt();
    jobsincome= new int[totalJobs];
    for(int i=0;i<totalJobs;i++){
        jobcounter=i+1;
        System.out.println("Enter the income for your job "+jobcounter);
        jobsincome[i]=sc.nextInt();
        averageSalary=averageSalary+jobsincome[i];
    }
    jobsincome=average(jobsincome);
    maxSalary=jobsincome[totalJobs-1];
    minSalary=jobsincome[0];
    averageSalary=averageSalary/totalJobs;
    System.out.println("Hi "+name+" your min salary is "+minSalary+" max salary is "+maxSalary+" average salary is "+averageSalary);
    }
    public static int[] average(int jobsincome[]){
        int length=jobsincome.length;
        for(int i=0;i<length;i++){
            for(int j=i+1;j<length;j++){
                if(jobsincome[i]>jobsincome[j]){
                    int temp=jobsincome[j];
                    jobsincome[j]=jobsincome[i];
                    jobsincome[i]=temp;
                }
            }
        }
        return jobsincome;
    }
    }
3
Anuj Dedha 28 nov. 2017 à 07:17

Utiliser une liste d'entiers pour conserver les salaires et parcourir les entrées

public static void main(String[] args)
{
    Scanner input = new Scanner(System.in);
    ArrayList<Integer> sallaries = new ArrayList<>();
    int TotalJobs;
    double average;
    String name;
    int largest;
    int smallest;

    System.out.print("What is your first name?: ");
    name = input.nextLine();


    System.out.print("How many jobs have you had?: ");
    TotalJobs = input.nextInt();

    for (int i= 0; i<TotalJobs ; i++){
        System.out.print("Enter income from job #"+(i+1)+" : ");
        sallaries.add(input.nextInt());
    }

    average = sallaries.stream().mapToInt(Integer::intValue).average().orElse(-1);

    largest = Collections.max(sallaries);
    smallest = Collections.min(sallaries);


    System.out.println("Hello " + name + "You've had " + TotalJobs + " jobs. " + "The highest paying job paid is " + largest + ". The lowest paying job paid is "+ smallest + ". The average is " + average + ".");
} 
2
User123456 28 nov. 2017 à 06:04

Utilisez un tableau.

Également ne capitaliser que les classes, pas les variables

System.out.print("How many jobs have you had?: ");
int totalJobs = scanner.nextInt();
int[] salaries = new int[totalJobs];

// Loop here 
// System.out.print("Enter income from job #"+x);
// salaries[x] = scanner.nextInt();

Avec cette liste, vous pouvez obtenir la longueur directement et utiliser des boucles séparées pour la somme, min, max. Ou des flux

Avec la somme et la longueur, trouvez une moyenne

2
OneCricketeer 28 nov. 2017 à 05:25
47524404