我已经开始学习 Java 编程,但在做作业时遇到了问题:ps 这是 ac 编程作业,用它来做 java 编程:
考虑一个(可能是大型商业)房间,其地板尺寸长度为 len 和宽度为 wd。地板的面积由 len 乘以 wid 得出。
地毯砖以单独的正方形(2 英尺乘 2 英尺)的形式提供。编写、编译和运行一个 C 程序,carpet.c,它
- 计算从终端输入尺寸(len 和 wid)(测量单位为英寸)的房间所需的最小地毯块数。注意:可以切割地砖以适合房间的边缘 - 尽量减少浪费。
- 计算需要多少个方块地毯包。供应商只提供十个一包的方块地毯(即不能单独购买单个方块)。
- 计算购买了最少数量的包后剩余的备用瓷砖数量。
- 将所有这些结果连同订单的总成本打印在一张整洁的表格中。(前四包每包瓷砖的价格为 50 美元,随后每包价格降至 45 美元。)
仔细想想你将如何测试你的程序?计算很重要,很容易出错。如果您的程序不起作用,那么您将浪费公司大量资金,并且您可能会失去提供软件的合同。
你应该写出一些测试用例(手写),涵盖所有可能发生的不同可能性。不要忘记考虑各种边界情况 - 这些通常是检测到错误的地方。
到目前为止,我已经完成了:
import java.util.Scanner;
public class carpet {
public static void main (String args[]){
Scanner scanf = new Scanner (System.in);
float len, wid;
float area;
int roundTiles;
int roundPacks;
float tarea;
float tpack;
float NoOfTiles;
float NoOfPacks;
float tspares1;
float tspares2;
int packCost;
int cost;
tarea= 12* 12;
tpack= 10;
System.out.format("Enter the length of the room, Inches: ");
len = scanf.nextFloat();
System.out.format("Enter the width of the room, Inches: ");
wid = scanf.nextFloat();
area = len * wid;
NoOfTiles = area/ tarea;
NoOfPacks = NoOfTiles/tpack;
roundTiles = (int) Math.ceil(NoOfTiles);
roundPacks = (int) Math.ceil(NoOfPacks);
tspares1 = roundPacks * 10;
tspares2 = tspares1 - roundTiles;
if (roundPacks <= 4)
packCost =50;
else if(roundPacks > 4)
{
packCost = 45;
packCost = packCost + 20; *<<-----******LINE 50-----*********
}
cost =roundPacks * packCost; *<<*******---ERROR-------------*********
System.out.println(cost);
}
}
错误提示: “局部变量 packCost 可能尚未初始化”
并且编译器说: “线程“main”java.lang.Error中的异常:未解决的编译问题:局部变量packCost可能没有在carpet.main(carpet.java:50)初始化“