计算职工工资
给定N个职员的信息,包括姓名、基本工资、浮动工资和支出,要求编写程序顺序输出每位职员的姓名和实发工资(实发工资=基本工资+浮动工资-支出)。
输入格式:
输入在一行中给出正整数N。随后N行,每行给出一位职员的信息,格式为“姓名 基本工资 浮动工资 支出”,中间以空格分隔。其中“姓名”为长度小于10的不包含空白字符的非空字符串,其他输入、输出保证在单精度范围内。
输出格式:
按照输入顺序,每行输出一位职员的姓名和实发工资,间隔一个空格,工资保留2位小数。
输入样例:
3
zhao 240 400 75
qian 360 120 50
zhou 560 150 80
输出样例:
zhao 565.00
qian 430.00
zhou 630.00
如果只想要通过就选择plan A,不会产生运算超时的问题,plan B是本人的初稿,中规中矩,就是PTA显示运算超时 0.0
Plan A:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
String name , all , a, b,c,temp;
int n , i;
float wage;
Scanner input = new Scanner (System.in);
temp = input.nextLine();
n = Integer.parseInt(temp);
for(i = 0;i<n;i++)
{
all = input.nextLine();
name =all.substring(0, all.indexOf(' '));
all = all.substring(all.indexOf(' ')+1);
a = all.substring(0, all.indexOf(' '));
all = all.substring(all.indexOf(' ')+1);
b = all.substring(0, all.indexOf(' '));
all = all.substring(all.indexOf(' ')+1);
c = all;
wage = Float.parseFloat(a)+Float.parseFloat(b)-Float.parseFloat(c);
System.out.printf("%s %.2f\n",name,wage);
}
input.close();
}
}
Plan B:
import java.util.*;
public class Main {
public static void main(String[] args) {
int n ,i;
String temp;
Scanner input = new Scanner(System.in);
temp = input.next();
n = Integer.parseInt(temp);
Main work = new Main();
//list初始化以及创建
employee[] list = new employee[n];
for(i =0;i<n;i++)
{
list[i] = new employee();
}
//对list输入数据
for(i =0;i<n;i++)
{
//list[i].name = input.next();
//list[i].wage_basic = input.next();
//list[i].wage_flow = input.next();
//list[i].paid = input.next();
work.massage_in(list[i],input);
}
//对list内数据进行处理,添加double类型wage数值
for(i = 0;i<n;i++)
{
work.counter(list[i]);
}
//输出职工的姓名与实发工资(间隔一个空格,保留2位小数)
for(i = 0;i<n;i++)
{
work.Show(list[i]);
}
}
void Show (employee n)
{
System.out.printf("%s %.02f\n", n.name,n.wage);
}
void counter (employee n)
{
double wage;
wage = Double.parseDouble(n.wage_basic)+Double.parseDouble(n.wage_flow)-Double.parseDouble(n.paid);
n.wage = wage;
}
void massage_in(employee n,Scanner input)
{
n.name = input.next();
n.wage_basic = input.next();
n.wage_flow = input.next();
n.paid = input.next();
}
}
class employee
{
String name;
String wage_basic;
String wage_flow;
String paid;
double wage;
}