**结束。**此问题需要详细的调试信息。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。
上个月关门了。
改进这个问题
我有一个需要提交的代码,每次尝试运行它时,都会一次又一次地出现相同的错误。
问题来了
编写以下java方法:
(a) 是的。readvalues从文本文件“values.txt”将十个整数值输入到整数数组选项卡中。此数组选项卡作为参数传递给方法。假设文件中的学生数等于数组的长度。
(b) 是的。oddvalues,它将数组tab作为参数,并返回在tab中找到的奇数值的数目。
(c) 是的。以数组选项卡作为参数的replaceodd。它应该用所有奇数之和替换tab中的每个奇数值。
提示:您的方法必须首先计算所有奇数值的和。
(d) 是的。printvalues,它将数组选项卡作为参数并在屏幕上打印其内容。
(e) 是的。main声明数组选项卡并调用上述四个方法。
n、 b:在你的程序中,使用上面提到的方法和变量名。
代码如下:
import java.util.*;
import java.io.*;
public class Finalexam
{
public static void main (String [] args ) throws FileNotFoundException
{
int sum=0;
int [] TAB=new int [10];
ReadValues(TAB);
oddValues(TAB);
replaceOdd(TAB);
printValues(TAB);
System.out.println("The sum is" + sum);
}
public static void ReadValues (int [] TAB)
{
{ int i;
for(i=0; i<10; i++){
Scanner s = new Scanner ("Values.txt") ;
TAB[i]=s.nextInt();
}
}
s.close();
}
public static double oddValues(int[] TAB)
{
int i;
double odd=0;
int fn=0;
for(i=1; i<odd; i++){
while(odd % 2 !=0)
{
odd = fn;
}
break;
}
return fn;
}
public static int replaceOdd(int[] TAB)
{
int re=0;
for(int i=0; i<TAB.length; i++){
re = re/TAB.length;
}
return re;
}
public static void printValues(int[] TAB)
{
int i;
for(i=0; i<10; i++){
System.out.println(TAB[i]+"\t");
}
System.out.println();
}
}
在哪一部分我做错了?我都跑不动了。
1条答案
按热度按时间nzrxty8p1#
首先,代码中有一个编译错误。
用你的方法
你有太多额外的方括号,这不是问题所在,问题是scanner对象s在for循环内声明,当你稍后在循环外关闭它时,因为变量的作用域不在循环外,所以出现了错误。
正确的方法应该是
还有很多东西可以在你的代码中工作,但是这是一个不好的实践或者没有遵循约定。
变量名(例如tab)应始终采用驼色大小写。只有当它是一个常量时,它才应该是一个大写字母,这在你的例子中是不存在的。
方法名以小写字母开头。
您也在调用这两种方法
replaceOdd(TAB)
以及oddValues(TAB)
但是返回值没有在任何地方使用。永远不会抛出filenotfoundexception
如果你仔细看看下面这个方法
循环永远不会作为
odd
是0
所以我永远都是假的。奇数的逻辑也是错误的。这种方法总是返回零,逻辑是错误的。
还有更多的逻辑错误。我建议你也调查一下