用java创建数组方法
这里我需要编写一个名为powArray的方法,它接受一个双数组用java创建数组方法,java,arrays,Java,Arrays,这里我需要编写一个名为powArray的方法,它接受一个双数组a,并返回一个包含a平方元素的新数组。将其推广到第二个参数,并将a的元素提升到给定的幂。 我试着写它,但结果是0,有人能写下它并解释它是如何工作的,这样我以后就可以写了 public class Task { public static void main(String[] args) { } public static double powArray (double a[]){ for (
a
,并返回一个包含a
平方元素的新数组。将其推广到第二个参数,并将a
的元素提升到给定的幂。
我试着写它,但结果是0,有人能写下它并解释它是如何工作的,这样我以后就可以写了
public class Task {
public static void main(String[] args) {
}
public static double powArray (double a[]){
for (int i = 1; i < a.length; i++) {
a[i] = Math.pow(a[i], 2.0);
System.out.print(a[i]);
return powArray(a);
}
return -1;
}
}
公共类任务{
公共静态void main(字符串[]args){
}
公共静态双数组(双a[]{
for(int i=1;i
此外,编译后没有任何结果,只清除控制台,不包含任何数字等。您可以使用下面的代码段,但这并没有考虑到您的一般情况,即您将传递幂,目前幂为2
public class Task {
public static void main(String[] args) {
double[] arr = {2.0,3.0,4.0};
powArray(arr);
for(double a : arr){
System.out.println(a);
}
}
public static void powArray (double a[]){
for (int i = 0; i < a.length; i++) {
a[i] = Math.pow(a[i], 2.0);
}
}
}
公共类任务{
公共静态void main(字符串[]args){
双[]arr={2.0,3.0,4.0};
功率阵列;
用于(双a:arr){
系统输出打印项次(a);
}
}
公共静态数组(双a[]{
for(int i=0;i
main方法不应为空,因为它是起点。因为powArray是一个静态方法,所以可以在主方法中直接调用它。
powArray应该返回一个双精度数组,但它只是返回一个双精度数组
for循环从1开始,但转到arraylength-1,它将为n-1个元素而不是n个元素运行
在返回的每个循环迭代中,return语句进行递归调用(再次调用相同的方法,这将导致堆栈溢出)
正如您所说,“我需要编写一个名为powArray的方法,它接受一个双数组a,并返回一个包含平方元素的新数组。”
您需要改进以下内容
public static void main(String[] args) {
// TODO Auto-generated method stub
double[] squareArry = powArray(new double[]{10,20,30});
}
public static double[] powArray (double a[]){
double[] b = new double[a.length];
for (int i = 0; i < a.length; i++) {
b[i] = Math.pow(a[i], 2.0);
System.out.print(b[i]);
}
return b;
}
publicstaticvoidmain(字符串[]args){
//TODO自动生成的方法存根
double[]squareArry=powdarray(新的double[]{10,20,30});
}
公共静态双[]数组(双a[]){
double[]b=新的双精度[a.长度];
for(int i=0;i
如果要使用递归,则不需要返回数组,因为您将更改传递给自身的数组的值。仔细查看以下递归示例:
public static void main(String[] args) {
// TODO Auto-generated method stub
double a[] = new double[]{2,5,4,6};
powArray(a,0);
for(double value:a){
System.out.println(value);
}
}
public static void powArray(double a[], int index) {
if (index < a.length) {
a[index] = Math.pow(a[index], 2.0);
powArray(a, ++index);
}
}
publicstaticvoidmain(字符串[]args){
//TODO自动生成的方法存根
双a[]=新的双[]{2,5,4,6};
功率阵列(a,0);
用于(双值:a){
系统输出打印项次(值);
}
}
公共静态数组(双a[],整数索引){
如果(索引
您正在创建一个递归方法,因为您在return返回数组(a)中调用了您的方法代码>,因此这将一次又一次地调用您的方法,直到您的条件出错并返回-1
。。。我需要写一个名为powArray的方法,它接受一个双数组,
并返回一个新数组
第一部分是正确的方法,称为powArray,它采用双数组,但第二部分不是返回数组,而是返回双数组,而是方法签名应该如下所示:
public static double[] powArray (double a[]){
//------------------^^
现在返回部分应该是这样的
public static double[] powArray (double a[]){
for (int i = 0; i < a.length; i++) {
a[i] = Math.pow(a[i], 2.0);
}
return a;//<<-------------return the result
}
输出:
[25.0, 36.0, 64.0, 49.0]
除了Sandeep Kakote的答案之外:
public static void main(String[] args) {
// TODO Auto-generated method stub
double[] squareArry = powArray(new double[]{10,20,30},3);
}
public static double[] powArray (double a[],int z){
double[] b = new double[a.length];
for (int i = 0; i < a.length; i++) {
b[i] = Math.pow(a[i], z);
System.out.print(b[i]);
}
return b;
}
publicstaticvoidmain(字符串[]args){
//TODO自动生成的方法存根
double[]squareArry=powdarray(新的double[]{10,20,30},3);
}
公共静态双[]数组(双a[],整数z){
double[]b=新的双精度[a.长度];
for(int i=0;i
您能更清楚地解释一下您的问题吗。嘿,您的代码中有一个错误,java方法不能像在代码中一样多次返回。您不是在返回数组,而是在首先修改当前数组,首先,我会看到这个方法永远不会返回,因为递归。首先,将返回类型从double更改为double数组。然后,再次阅读有关创建和迭代数组的书籍。不,我不会为你做更多的家庭作业;我希望没有其他人这样做。一些指南只是为了帮助你。1-创建一个新的Double数组,该数组的大小与参数中接收到的数组的大小相同。2-将返回类型更改为双精度数组3-对于接收数组中的每个项目,在创建的数组中插入其通电值以返回4-最后返回创建的数组大量存储,我将仔细查看。我的powArray方法的第一个版本也是一样的,但问题是我不知道在main方法中写什么来显示reult。谢谢。@Jurtchak注意你的方法是一个递归方法注意
public static void main(String[] args) {
// TODO Auto-generated method stub
double[] squareArry = powArray(new double[]{10,20,30},3);
}
public static double[] powArray (double a[],int z){
double[] b = new double[a.length];
for (int i = 0; i < a.length; i++) {
b[i] = Math.pow(a[i], z);
System.out.print(b[i]);
}
return b;
}