问题是想象一个程序将文件压缩到原始大小的80%并将它们存储在存储介质上。在存储压缩文件之前,必须将其分成每个512字节的块。编写一个程序,首先读取存储介质上可用的块数。然后,在循环中,读取文件的未压缩大小,并确定压缩文件是否适合存储介质上留下的空间。如果是这样,程序应该压缩并保存文件。它会一直持续到遇到超出媒体可用空间的文件。
但是,我的代码不断返回不正确的整数....
import java.util.Scanner;
public class HW2Q2
{
public static void main(String[] args)
{
int size;
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter the number of blocks available");
size=keyboard.nextInt();
System.out.println("Available number of blocks is " + size);
int filesize;
while(size!=0)
{
System.out.println("Enter the size of the file that is to be stored");
filesize=keyboard.nextInt();
filesize=filesize/512*80/100;
System.out.println("compressed file size is " + filesize);
if(filesize>size)
{
System.out.println("the number of blocks available, " + size + " is less than the required number, " + filesize);
break;
}
else
size=size-filesize;
{
System.out.println("available number of blocks is " + size);
}
}
}}
答案 0 :(得分:1)
您永远不会为变量size
分配新值,而只会为sizenew
分配新值。因此,当您最终打印出没有可用空间时,它将打印原始尺寸。