Graf c++

0

Dzień dobry mam problem z jednym z zadań. Napisz program, który pobierze od użytkownika macierz sąsiedztwa grafu G (wierzchołki numerujemy od jedynki), a następnie wyświetli następujące informacje (każda informacja w osobnej linii): Napisałem coś takiego:

#include <iostream>
#include <vector>

using namespace std;

int ar[15][15];
int n;
int krawedzie, laczonekrawedzie;
int stopienwierzcholka;
vector <int> stwierzolka;
float srednia;

int main()
{
    cout << "Podaj liczbe wierszy macierzy: ";
    cin>>n;

    for(int i=0;i<n;i++)
    {

        for(int j=0;j<n;j++)
        {
            cin>>ar[i][j];
        }
    }


    cout<<"Liczba Wierzcholkow: "<<n<<endl;

    for(int i=0;i<n;i++)
    {
        stopienwierzcholka=0;
        for(int j=0;j<n;j++)
        {
           if(ar[j][i]==1) stopienwierzcholka++;
           if(ar[i][j]==1) krawedzie++;
           if((ar[i][j]==1)&&(ar[j][i]==1)) laczonekrawedzie++;
        }
        stwierzolka.push_back(stopienwierzcholka);
    }
    cout<<"Liczba krawedzi: "<<krawedzie-(laczonekrawedzie/2)<<endl;
    cout<<"Stopnnie wierzcholkow: ";

          for(int i=0;i<stwierzolka.size();i++)
          {
              srednia+=stwierzolka[i];
              cout<<stwierzolka[i]<<" ";
          }
    cout<<endl<<"Sredni stopien: "<<srednia/stwierzolka.size()<<endl;
  /*  if(laczonekrawedzie==krawedzie)
    {
        cout<<"Jest to cykl"<<endl;
    }
    */
    return 0;
}

Jak zrobić tak żeby nie było trzeba określać wielkości macierzy przez użytkownika?

0
vector<vector<int>> matrix;

string input_line;
while (getline(cin, input_line)) {
	stringstream input_line_stream { input_line };
	
	vector<int> row;
	int val;
	while (input_line_stream >> val) {
		row.push_back(val);
	}
	
	matrix.push_back(row);
}
0

A mógłbyś jeszcze powiedzieć jak to połączyć, po moich próbach nic się nie udaje

0

zamiast int ar[15][15]; musisz mieć vector<vector<int>> matrix;

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