我让程序按照我想要的方式运行。我正在努力让该程序为每个员工的工资增加 2%。我的问题是程序的输出不显示 2% 的提升。
这是我运行程序时得到的输出..
Enter social security number:12345678
Enter salary2000
Please input next security numbers or -1 to quit:12345677
Enter salary3000
Please input next security numbers or -1 to quit:-1
Social Security Number Salaries Salary After Raise
12345678 2000.000000 0.000000
12345677 3000.000000 0.000000
代码..
import java.util.Scanner;
public class Salaries {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner (System.in);
//Declaring variables
int[] ssNumbers = new int [10];
double[] salaries = new double [10];
double[] nSalaries = new double [10];
int c;
c = inputData (ssNumbers, salaries); //calling input data method
raise (salaries, c); // calling raise method
output (ssNumbers, salaries, nSalaries); //calling output method
}
public static int inputData (int[]ssn, double[]sals){ // input method
int c = 0;
Scanner input = new Scanner (System.in);
int ssNum;
System.out.print("Enter social security number:");
ssNum = input.nextInt();
while (ssNum != -1) //using while loop.
{
ssn[c] = ssNum;
System.out.print("Enter salary");
sals[c] = input.nextDouble(); //prompting user for input
c++;
System.out.print("Please input next security numbers or -1 to quit:");
ssNum = input.nextInt(); //prompting user for input
}
return c;
}
public static void raise (double[] salaries, int c) // raise method
{
double[] salaryraise = new double [10];
for (int i = 0; i < c; i++ )
salaryraise[i] = salaries[i]*.02;
}
public static void output (int[] ssNumbers, double[] salaries, double[] salaryraise ) //output method
{
System.out.printf("%30s %30s %30s\n", "Social Security Number", "Salaries", "Salary After Raise");
for (int i = 0; i < salaries.length; i++)
//output
System.out.printf("%30d %30f %30f\n", ssNumbers[i], salaries[i], salaryraise[i]);
return;
}
}
最佳答案
在您的 raise 方法中,您创建一个名为 salaryraise 的本地数组,并将新数字分配给它,但您不对其执行任何操作,它就会消失范围。
您发送到output
的数组nSalaries
已声明,但在发送到output
之前绝不会被修改。
将 nSalaries
作为第二个参数传递给 raise
,并让 raise
为该数组分配值,而不是声明本地数组并分配值到它。
关于java - 增加工资加薪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22997678/