我打算编写一个程序。 提示用户输入酒店楼层总数、每层房间数和房间占用数。 最后,您需要显示房间总数、房间占用数量和房间占有率。 在显示房间占有率方面存在问题。 使用了所有的int号码。
这是我提出的等式:
roomsoccpercentage=(totalroomsoccupied * 100 )/totalRooms;
当我将程序提交给教授的Java可执行文件时,您将看到以下内容:
65 % of the Rooms are occupied。
但是,我的教授提供的那个给出了66%的答案,所以程序没有接受我的文件。
谁知道我做了什么? 那是DecimalFormat错误吗?
编辑:这是整个代码
import java.util.Scanner;
import java.text.DecimalFormat;
公共类hw7 _1{
publicstaticvoidmain (string [ ] args ) {
sanner keyboard=new scanner (system.in );
decimal format formatter=new decimal format (' #0' );
int totalFloors;
int totalRooms=0;
int numFloors;
int numRooms;
int roomsOccupied;
int totalRoomsOccupied=0;
int roomsOccPercentage=0;
//promptinguserstoinput # offloors,no inputs below 1 floor
do {
system.out.println (pleaseenterthenumberoffloorsinthehotel 3360 );
numFloors=keyboard.nextInt (;
if(numfloors1) {
system.out.println (' youhaveenteredaninvalidnumberoffloors.' );
}
}
while(numfloors1);
//forloopsonhowmanyroomsoneachhotelfloors
for(intfloors=1; Floors=numFloors; Floors ) {
if(floors==13 ) {
连续;
}
do {
system.out.println (pleaseenterthenumberofroomsonfloor # : ) floors );
numRooms=keyboard.nextInt (;
if(numrooms10 ) {
system.out.println (' youhaveenteredaninvalidnumberofrooms.' );
}
(while ) numrooms10;
system.out.println (pleaseenterthenumberofoccupiedroomsonfloor # : ) floors );
roomsOccupied=keyboard.nextInt (;
totalRooms=totalRooms numRooms;
totalroomsoccupied=totalroomsoccupiedroomsoccupied;
roomsoccpercentage=(totalroomsoccupied * 100 )/totalRooms;
}
system.out.println ((nthehotelhasatotalof ' total rooms ' rooms.' );
system.out.println (totalroomsoccupied ' oftheroomsareoccupied.' );
system.out.println (formatter.format (roomsoccpercentage (% oftheroomsareoccupied.' ) );
}
}