java程序输出中出现错误
我正在尝试做一个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
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",