【问题标题】:calculate the average of a vector with one input argument and find the average of the following vector: [ 1 2 3 4 5 6 ] [closed]计算具有一个输入参数的向量的平均值并找到以下向量的平均值:[1 2 3 4 5 6] [关闭]
【发布时间】:2021-06-16 19:56:44
【问题描述】:

如何用 javascript 解决这个问题?给我一个更好的解决方案。谁来帮帮我。我对向量感到困惑。它的输入需要一个参数

#include <iostream>
#include <stream>
#include <vector>

using namespace std;

int main() {

ifstream numbers;
numbers.open("G:\\numbers.dat"); // just a file of 10 integers.
int i;
vector<float> vectors;

while(numbers >> i) {
    vectors.push_back(i);
}

for(int n=0; n < vectors.size(); ++n ){
    cout << vectors[n] << endl;
}

int avg;
for(int k=0; k < vectors.size(); ++k){
    // not sure what to put here basically.
    cout << avg << endl;
}


numbers.close();

return 0;

}

【问题讨论】:

  • 为什么是javascript?
  • @NinaScholz 我不能用 javascript 来做。我想用javascript解决它。
  • 战术说明:计算平均值时不需要容器。只需对给出的值求和,并计算总和的项目数,以便您可以将总和除以最后的计数。
  • "如何在不使用 PHP 的情况下解决这个问题?" - 然后你编写 C++ 代码但想要 javascript?

标签: javascript c++ arrays vector stdvector


【解决方案1】:

这是你在 JS 中的做法:

arr = [1, 2, 3, 4, 5, 6]
console.log(arr.reduce((a, b) => a + b, 0) / arr.length)

以下是您在 C++ 中的操作方式:

#include <iostream>  
#include <iterator>  
#include <numeric>   

int main() {
  const int arr[] = {1, 2, 3, 4, 5, 6};
  std::cout << 
      std::accumulate(std::begin(arr), std::end(arr), 0.0) / std::size(arr) << '\n';
}

这是你在 C 中的做法:

#include <stddef.h>
#include <stdio.h>

int main() {
  const int arr[] = {1, 2, 3, 4, 5, 6};
  const size_t size = sizeof(arr) / sizeof(*arr);
  double sum = 0;
  for (size_t i = 0; i < size; ++i) sum += arr[i];
  printf("%.2f\n", sum / size);
}

以下是您在 Python 中的操作方式:

arr = [1, 2, 3, 4, 5, 6]
print(sum(arr)/len(arr))

这是你在 Rust 中的做法:

fn main() {
    let arr = [1, 2, 3, 4, 5, 6];
    let sum : i32 = arr.iter().sum();
    println!("{}", sum as f64 / arr.len() as f64);
}

这是你在 golang 中的做法:

package main

import (
    "fmt"
)

func main() {
    arr := []int{1, 2, 3, 4, 5, 6};
    sum := 0.0;
    for _, n := range arr {
        sum += float64(n);
    }
    
    fmt.Printf("%f\n", sum / float64(len(arr)));
}

以下是如何在 C# 中执行此操作:

using System.Linq;
                    
public class Program
{
    public static void Main()
    {
        var arr = new int[]{1, 2, 3, 4, 5, 6};
        System.Console.WriteLine(arr.Average());
    }
}

以下是在 Java 中的操作方法:

import java.util.Arrays;

public class Main {

    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5, 6};
        System.out.println(getAverage(arr));
    }

    public static double getAverage(int[] arr) {
        return Arrays.stream(arr)
                .average()
                .getAsDouble();
    }
}

以下是您在 Kotlin 中的操作方式:

fun main() {
    val arr = arrayOf(1, 2, 3, 4, 5, 6);
    println(arr.average());
}

这是在 Ruby 中的操作方法:

arr = [1, 2, 3, 4, 5, 6];
average = arr.sum(0.0) / arr.size;
puts average;

以下是您在 Swift 中的操作方式:

let arr = [1, 2, 3, 4, 5, 6]
let sum = arr.reduce(0) { $0 + $1 }
let average = Double(sum) / Double(arr.count)

print(average)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多