Program wypisujący na standardowe wyjście najdłuższy wektor

0

Na standardowe wejście podano dwie liczby całkowite m in oraz m n-elementowych ciągów liczb zmiennoprzecinkowych. Te ciągi to m wektorów w przestrzeni R^n. Napisz program, który wypisze na standardowe wyjście najdłuższy wektor(tylko jeden, pierwszy z nich). Długość wektora obliczamy jako pierwiastek z sumy od i do n-1 z x_i. Na przykład jeśli dane wejściowe to:

3 2
1.0 2.0
3.0 2.0
2.0 2.0

Wynikiem będzie: 3.0 2.0

#include <iostream>
#include <vector>
#include<cmath>

using namespace std;


int main(){
  int m,n;
  
  cin>>m;
  cin>>n;

  cout<<"m= "<<m<<", n= "<<n<<endl;
 
  vector<vector<double>>v;
  double value;
 

for(int i=0;i<n;i++){
  vector<double>row;
  for(int j=0;j<m;j++){
    cin>>value;
    row.push_back(value);
  }
  v.push_back(row);
}

 for (int i=0; i<n;i++){
    for (int j=0;j<m;j++)
      cout<<v[i][j]<<" ";
    cout << endl;
}

}

Napisałam tę część z przyjmowaniem wartości m i n, wpisywaniem liczb do wektora, ale nie wychodzi mi napisanie funkcji obliczającej długość wektora i zwracającej najdłuższy wektor. Czy mógłby mi ktoś pomóc? Z góry dziękuję. :)

0

Napisałam tę część z przyjmowaniem wartości m i n, wpisywaniem liczb do wektora,

Na moje oko nie chodzi o wpisanie danych do kontenera std::vector tylko o utworzenie
struktury przechowującej dane (współrzędnej początku i końca wektora).
Osobne Wektory możesz jak najbardziej trzymać w kontenerze.
W pętli sprawdź, który z Wektorów jest najdłuższy i zapamiętaj go.

http://prace.lukispot.cba.pl/wyznaczanie-dlugosci-wektora-klasy-funkcje-cpp/

2

Nie pisz wszystkiego w main będzie ci łatwiej:

std::vector<std::vector<double>> loadData(std::istream &input) {
     // tutaj wczytaj dane
}

void printVector(std::ostream &output, const std::vector<double> &v) {
    // tutaj wypisz dane
}

double lengthOfVector(const std::vector<double> &v) {
     // wstaw swoje oblicznia tutaj
}

std::vector<double> findLongestVector(const std::vector<std::vector<double>> &data) {
    // tutaj wyszukaj to co najdłuższe w data
    if (lengthOfVector(...) < x) ...
}

int main() {
     auto data = loadData(std::cin);
     auto result = findLongestVector(data);
     printVector(std::cout, result);

     return 0;
}
1

mam problem z tym, aby wziąć ten wewnętrzny wektor z wektora i stworzyć pętle

std::vector<double> findLongestVector(const std::vector<std::vector<double>> &data) {
    ..... = 0.0;
    for (size_t i = 0; i < data.size(); ++i) {
         auto currentLength = lengthOfVector(data[i]);
         if (currentLength > ...) {
              ....
         }
    }
    .....
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1