RT ,最近购入了算法红宝书,并按照官网的一键配置 java 环境( https://lift.cs.princeton.edu/java/windows/)装好了环境,但是在使用书上的代码时,传参时出现很多问题(因其使用很多自己编写的库): 如求平均:
import edu.princeton.cs.algs4.StdIn;
import edu.princeton.cs.algs4.StdOut;
public class Average {
public static void main(String[] args) {
double sum = 0.0;
int cnt = 0;
while (!StdIn.isEmpty()){
sum+=StdIn.readDouble();
cnt++;
}
double avg = sum/cnt;
StdOut.printf("Average is:%.5f\n",avg);
}
}
当我在命令行运行时直接报错:
Microsoft Windows [版本 10.0.19042.1415]
(c) Microsoft Corporation 。保留所有权利。
D:\Algorithms\4th\Code\hello>java Average
Exception in thread "main" java.lang.NoClassDefFoundError: edu/princeton/cs/algs4/StdIn
at Average.main(Average.java:8)
Caused by: java.lang.ClassNotFoundException: edu.princeton.cs.algs4.StdIn
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 1 more
书上的实例是:
/*
Standard input and standard output. StdIn.java and StdOut.java are libraries for reading in numbers and text from standard input and printing out numbers and text to standard output. Our versions have a simpler interface than the corresponding Java ones (and provide a few technical improvements). RandomSeq.java generates random numbers in a given range. Average.java reads in a sequence of real numbers from standard input and prints their average on standard output.
*/
% java Average
10.0 5.0 6.0 3.0 7.0 32.0
3.14 6.67 17.71
<Ctrl-d>
Average is 10.05777777777778
这只是期中一个,还有例如 BinarySearch 传文本为参数进去,结果传进去之后他的程序也不运行,不知道为啥... 在使用这种外国的书籍时,找不到能够沟通的人和修错教程,是真的痛苦...