赶了两个晚上加一个早上,终于把这个作业修改出来了,通过网上和不断查书,一知半解还是会的,困了....
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
/**
* 2. 极值计算。从tinyW.txt文件中读取若干数据
* (读的程序已经写好,数据格式为 第1行:总数据个数n,第2行……n+1行:相应的数据),
* 请编写程序,计算出数据的最大值与最小值,并输出。类名:ComputeExtreme,
* 博文标题:第7周作业2-极值计算。
* @author Administrator
*
*/
public class ComputeExtreme {
public static void main(String[] args) throws FileNotFoundException{
int num = 0; //声明一个整型变量num,并初始化为0
int[] array; //声明一个整型数组
//构造一个新的 Scanner,它生成的值是从指定文件扫描的
Scanner sc = new Scanner(new File("D:\\tinyW.txt"));
//从文件中获得数组的大小
if(sc.hasNextInt()){
num = sc.nextInt();
}
array = new int[num]; //初始化数组大小
//从文件中获取数组的值
for(int i=0; i<num && sc.hasNextInt(); i++){
array[i] = sc.nextInt();
}
sc.close(); //关闭扫描器
//下面部分同学撰写,(1)输出整个数组的内容;(2)计算array数组的最大值;(3)计算最小值;(4)输出最值
System.out.println("一共有"+num+"个整数,分别为:");
for(int tmp:array){
System.out.print(tmp+" ");
}
int max = 0;
for(int a : array){
if(max<a)
max = a;//如果输入的a值比max大,就把这个a值赋给max,如果a不必max大,那么不理这个a值,这样就保证了max总是最大值。
}
System.out.println("最大值"+max);
int min=max;
for(int a : array){
if(min>a)
min=a;
System.out.println("最小值"+min);
}
}
}
这个是通过老师的程序改编而来,运用了文件调度方法,而那个最小值也不知道是怎么回事,需要每一个数都判断然后再输出,就是每一个数据都检查和输出一遍,直到找到了最小值为止,然后停留在这一个最小值的位置
那个最小值看看能不能解决一下吧
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
/**
* 2. 极值计算。从tinyW.txt文件中读取若干数据
* (读的程序已经写好,数据格式为 第1行:总数据个数n,第2行……n+1行:相应的数据),
* 请编写程序,计算出数据的最大值与最小值,并输出。类名:ComputeExtreme,
* 博文标题:第7周作业2-极值计算。
* @author Administrator
*
*/
public class ComputeExtreme {
public static void main(String[] args) throws FileNotFoundException{
int num = 0; //声明一个整型变量num,并初始化为0
int[] array; //声明一个整型数组
//构造一个新的 Scanner,它生成的值是从指定文件扫描的
Scanner sc = new Scanner(new File("D:\\tinyW.txt"));
//从文件中获得数组的大小
if(sc.hasNextInt()){
num = sc.nextInt();
}
array = new int[num]; //初始化数组大小
//从文件中获取数组的值
for(int i=0; i<num && sc.hasNextInt(); i++){
array[i] = sc.nextInt();
}
sc.close(); //关闭扫描器
//下面部分同学撰写,(1)输出整个数组的内容;(2)计算array数组的最大值;(3)计算最小值;(4)输出最值
System.out.println("一共有"+num+"个整数,分别为:");
for(int tmp:array){
System.out.print(tmp+" ");
}
int max = 0;
for(int a : array){
if(max<a)
max = a;
}
System.out.println('\n'+"最大值"+max);
sc.close();
int min=max;
for(int b : array){
if(min>b)
min=b;
//if(min<max)
}System.out.println("最小值"+min);
}
}
终于把最小最单个输出了
终于把最小值单个输出,而不是判断输出了,其实改变只是很少,只要把最小值的输出放在外面就可以单个输出了