java程序输出中出现错误

java程序输出中出现错误,java,while-loop,Java,While Loop,我正在尝试做一个java程序,但是输出有问题 这是我输入信息时得到的错误 Enter social security number:12345678 输入salary3000 请输入下一个安全号码或-1退出:12345666 输入salary2122 请输入下一个安全号码或-1退出:900000000 输入salary3000 请输入下一个安全号码或-1退出:-1 线程“main”java.util.UnknownFormatConversionException中的异常:Conversion

我正在尝试做一个java程序,但是输出有问题

这是我输入信息时得到的错误

Enter social security number:12345678
输入salary3000
请输入下一个安全号码或-1退出:12345666
输入salary2122
请输入下一个安全号码或-1退出:900000000
输入salary3000
请输入下一个安全号码或-1退出:-1

线程“main”java.util.UnknownFormatConversionException中的异常:Conversion=':'
在java.util.Formatter.checkText(Formatter.java:2547)
在java.util.Formatter.parse(Formatter.java:2533)
位于java.util.Formatter.format(Formatter.java:2469)
位于java.io.PrintStream.format(PrintStream.java:970)
在java.io.PrintStream.printf(PrintStream.java:871)
at Salaries.output(Salaries.java:57)
at Salaries.main(Salaries.java:19)

这是我到目前为止的代码

导入java.util.Scanner; 公营工资{

public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner input = new Scanner (System.in);

    int[] ssNumbers = new int [10];
    double[] salaries = new double [10];
    double[] nSalaries = new double [10];
    int c;

    c = inputData (ssNumbers, salaries);
    raise (salaries, c);
    output (ssNumbers, salaries, nSalaries);
}

public static int inputData (int[]ssn, double[]sals){

    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();
        c++;

        System.out.print("Please input next security numbers or -1 to quit:");
        ssNum = input.nextInt(); 
    }
        return c;

}
public static void raise (double[] salaries, int c)

{
    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[] nSalary )
{
    System.out.printf("%-20s%-20s%-20s%:\n", "Social Security Number", "Salaries", "Salary After Raise");
    for (int i = 0; i < salaries.length; i++)

        System.out.printf("%d %.2f %.2f", ssNumbers[i], salaries[i], nSalary[i]);

    return;
}
publicstaticvoidmain(字符串[]args){
//TODO自动生成的方法存根
扫描仪输入=新扫描仪(System.in);
int[]ssNumbers=新int[10];
双倍[]工资=新的双倍[10];
double[]nSalaries=新的double[10];
INTC;
c=输入数据(SSN编号、工资);
提高(工资,c);
产出(人数、工资、收入);
}
公共静态int-inputData(int[]ssn,double[]sals){
int c=0;
扫描仪输入=新扫描仪(System.in);
int-ssNum;
系统输出打印(“输入社会保险号:”);
ssNum=input.nextInt();
while(ssNum!=-1)//使用while循环。
{
ssn[c]=ssNum;
系统输出打印(“输入薪资”);
sals[c]=input.nextDouble();
C++;
System.out.print(“请输入下一个安全号码或-1退出:”;
ssNum=input.nextInt();
}
返回c;
}
公开静态无效加薪(双倍[]工资,国际c)
{
double[]salaryraise=新的double[10];
对于(int i=0;i
}尝试更改行:

    System.out.printf("the salary after raise is %f\n:", salaryraise);
致:

这行中有一个“%:”您将要删除。(因为它不是有效的说明符)


:)

格式末尾的%字符出错。 应删除以下内容:

  System.out.printf("%-20s%-20s%-20s%:\n",
>>System.out.printf("%-20s%-20s%-20s:\n",

我的道歉。这条线一开始就不应该在那里。我编辑了我的代码。ThnxYes。但是一个不同的。查看我编辑的帖子,查看我现在遇到的错误。这个错误似乎是在输出方法中,也是因为您的打印语句。您能告诉我如何修复它吗?我只是很困惑
System.out.printf("%-20s%-20s%-20s%:\n", "Social Security Number", "Salaries", "Salary After Raise");
  System.out.printf("%-20s%-20s%-20s%:\n",
>>System.out.printf("%-20s%-20s%-20s:\n",