Graf c++

Odpowiedz Nowy wątek
2019-04-26 14:51
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?

Pozostało 580 znaków

2019-04-26 15:06
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);
}
edytowany 1x, ostatnio: spartanPAGE, 2019-04-26 15:06

Pozostało 580 znaków

2019-04-26 17:43
0

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

Pozostało 580 znaków

2019-04-26 18:18
0

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

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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