Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用循环将数组中的元素与相乘的java方法_Java_Arrays_Loops_For Loop_Int - Fatal编程技术网

使用循环将数组中的元素与相乘的java方法

使用循环将数组中的元素与相乘的java方法,java,arrays,loops,for-loop,int,Java,Arrays,Loops,For Loop,Int,定义一个名为weightedSum()的Java方法,该方法采用两个整数数组作为参数。这个 方法使用循环将两个数组的对应元素相乘(即,将每个数组的第一个参数相乘,然后将每个数组的第二个元素相乘,依此类推),并返回这些乘积的总和(也是一个整数)。您可以假设两个数组的长度相等 public int weightedSum(int [] a ,int [] b) { int value; int sum ; for (int i = 0 ;

定义一个名为weightedSum()的Java方法,该方法采用两个整数数组作为参数。这个
方法使用循环将两个数组的对应元素相乘(即,将每个数组的第一个参数相乘,然后将每个数组的第二个元素相乘,依此类推),并返回这些乘积的总和(也是一个整数)。您可以假设两个数组的长度相等

public int weightedSum(int [] a ,int [] b)


    {
        int value;
        int sum ;

        for (int i = 0 ; i < a.length ; i++)
        {
            value = a[i] * b [i];
            value  = value +value ;

        }

        return value;
public int-weightedSum(int[]a,int[]b)
{
int值;
整数和;
for(int i=0;i

我在为我的赋值写这个方法时遇到困难。我知道它接受数组,但我在写循环本身时遇到困难,因此它将数组的每个单独元素与其在相反数组中的对应元素相乘,因此pos[1]*pos[1],然后将这两个值与pos[2]+pos[2]相加要获得下面所有值的总和,需要对代码进行更改。基本上,在计算两个数组中相应元素的乘积后,您从未更新过变量sum。此外,您可能希望使用long type来存储总和的结果&如果e阵列足够大

public long weightedSum(int [] a ,int [] b)
{
    long value = 0;
    long sum = 0 ;

    for (int i = 0 ; i < a.length ; i++)
    {
        value = a[i] * b [i];
        sum = sum +value ;

    }

    return sum;
}
公共长权重总和(int[]a,int[]b)
{
长值=0;
长和=0;
for(int i=0;i
更改为:

value += a[i] * b [i];
// value = value + value;
在使用之前,还要将
初始化为
0
。 同时删除
sum
变量。

尝试以下操作:

public long dotProduct(int [] a, int [] b) {
    if (a == null) throw new IllegalArgumentException("a array cannot be null");
    if (b == null) throw new IllegalArgumentException("b array cannot be null");
    if (a.length != b.length) throw new IllegalArgumentException("arrays must have equal lengths");
    long sum = 0L;
    for (int i = 0; i < a.length; i++) {
        sum += a[i]*b[i];
    }
    return sum;
}
公共长点积(int[]a,int[]b){
如果(a==null)抛出新的IllegalArgumentException(“数组不能为null”);
如果(b==null)抛出新的IllegalArgumentException(“b数组不能为null”);
如果(a.length!=b.length)抛出新的IllegalArgumentException(“数组必须具有相等的长度”);
长和=0L;
for(int i=0;i
大多数代码看起来都是正确的,但是循环中的第二行不应更改值变量,而应使用值更新sum变量。 比如sum+=值。 然后返回总和。

import java.util.*;
import java.util.*;
public class Demo
{
    public static void main(String args[])
    {
        System.out.println("Hello World");
    
        System.out.println("Enter n :");
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
    
        Integer[] arr = new Integer[n];
        System.out.println("Enter Elements :");
        for(int i=0;i<n;i++)
        {
            arr[i]=sc.nextInt();
        }
    
        //Ascending Array
        Arrays.sort(arr); 
        System.out.println("Elements Are :");
        for(int i=0;i<n;i++)
        {
            System.out.println(arr[i]);
        }
    
        //Descending Array
        Arrays.sort(arr,Collections.reverseOrder()); 
        System.out.println("Elements Are :");
        for(int i=0;i<n;i++)
        {
            System.out.println(arr[i]);
        }
    
        //Product Of First Four Elements Of Array
        int product=1;
        for(int i=0;i<4;i++)
        {
            product=product*arr[i];
        }
        System.out.println("Product : "+product);
    }
}

/* Output

Hello World
Enter n :
5
Enter Elements :
4
5
9
8
6
Elements Are :
4
5
6
8
9
Elements Are :
9
8
6
5
4
Product : 2160

*/

import java.util.*;
public class DemoNew
{
    public static void main(String args[])
    {
        System.out.println("Hello World");
        System.out.println("Enter N : ");
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
    
        Float[] r = new Float[n];
        System.out.println("Enter Distances : ");
    
        for(int i=0;i<n;i++)
        {
            r[i]=sc.nextFloat();
        }
    
        System.out.println("Distances : ");
       for(int i=0;i<n;i++)
    {
        System.out.println(r[i]);
    }
    
    for(int i=0;i<r.length;i++)
    {
        if(r[i] == 0.0)
        {
            System.out.println("Invalid");
            break;
        }
        else if(r[i] < 0)
        {
            System.out.println("Invalid");
            break;
        }
        else
        {
            //Descending Array
            Arrays.sort(r,Collections.reverseOrder());
            System.out.println("Distances in Descending Order Are :");
            for(int j=0;j<n;j++)
            {
                System.out.println(r[j]);   
            }
            

            System.out.println("3 Max Distances Are :");
            for(int k=0;k<3;k++)
            {
                System.out.println(r[k]);                   
            }
            
            List<Float> list = Arrays.asList(r);
            System.out.println(list);
            
            
            

            /* Float[] ar = new Float[r.length];
            for(int m=0;m<r.length;m++)
            {
                ar[m]=r[m];
            }
            
            System.out.println("Final Ans :"); */
            
            break;
        }
    }
}
}
公开课演示 { 公共静态void main(字符串参数[]) { System.out.println(“你好世界”); System.out.println(“输入n:”); 扫描仪sc=新的扫描仪(System.in); int n=sc.nextInt(); 整数[]arr=新整数[n]; System.out.println(“输入元素:”);
对于(int i=0;它不会编译,当然也不会返回总和。建议注释掉一些代码是没有意义的,如果不需要,那么应该注释掉deleted@peter.petrov当前位置你最初的回答不仅很好。不是那些投反对票的人太快了:是你的回答,这是错误的。我现在删除了投反对票,但你不能删除ally抱怨因为错误的答案而被否决。(在我看来,这仍然不是一个好答案,因为它并不能真正解释任何事情…)@peter.petrov:看看你的评论,它批评了那些对你的答案投否决票的人的行为,而你的答案一开始肯定是错误的。这看起来像是你觉得很有趣,还是像是抱怨?@peter.petrov:如果答案是错误的,那是没有帮助的,因此应该投否决票。你是否建议在投否决票之前,先投一张否决票如果答案是确定的,你应该多呆一会儿吗?我认为这不是个好主意-我认为应该由回答者在发帖前确保答案是正确的。在这种情况下,你太快了,而不是那些悲观的选民。(不,这并不是说我的答案一开始总是正确的——但如果有人否决了我的错误答案,我永远不会说他们“太快了”。他们的行为完全正确。)提示:您有一个名为
sum
的变量,但您没有使用它…要测试您的方法,请使用类似的打印消息,如本文所述--以了解每次迭代中发生的情况。从两个数组开始,每个数组中定义了3个元素,并在代码中添加一些打印以了解它。这仍然无法编译。
sum
没有明确指定。(我也会更改
值的范围,但这是一个稍微不同的问题。)用零初始化和,如int sum=0“返回这些乘积的和(也是一个整数)”这不再符合规范。@Cruncher我故意更改了合同,以向OP表明,如果返回int,则可能由于溢出而导致错误结果。OP可以自由决定是否将返回类型保留为int/long您的疑问是什么?请详细询问您的问题。