Witam,
Mam program w C obliczający stopień wierzchołków oraz grafów. Już trochę go poprzerabiałem, lecz w tej chwili nie moge go uruchomić. Czy ktoś mógłby mi pomóc i zmienić kod tak by program mial wieksza skale mozliwosci (tzn zeby mozna bylo wpisac wieksza ilosc wierzcholkow a nie od 2-5) oraz tak zeby mogl bezproblemu sie skompilowac i uruchomic.
Z gory dzieki.
Pozdrawiam
#include <stdio.h>
#include <stdlib.h>
#define MAX_LICZBA_KRAW 100
// struktura danych krawedzi
struct Krawedz {
int w1;
int w2;
} listaK[MAX_LICZBA_KRAW];
int main(int argc, char *argv[])
{
// wprowadzanie liczby wierzcholkow
int liczbaW;
int liczbaWOk;
do
{
liczbaWOk = 1;
printf("LICZBA WIERZCHOLKOW (2-5):\n");
scanf("%d", &liczbaW);
// weryfikacja
if(liczbaW < 2 || liczbaW > 5)
{
printf("Niepoprawna liczba wierzcholkow.\n");
liczbaWOk = 0;
}
} while(liczbaWOk == 0);
// wprowadzanie krawedzi grafu
printf("\nWPROWADZANIE KRAWEDZI:\n");
int liczbaK = 0;
int odp;
do
{
int wierzcholekOk;
printf("Krawedz %d:\n", liczbaK+1);
// wprowadzanie wierzcholka 1 krawedzi
do
{
printf("Nr wiedzcholka 1: (1-%d)\n", liczbaW);
scanf("%d", &listaK[liczbaK].w1);
wierzcholekOk = 1;
// weryfikacja
if(listaK[liczbaK].w1 < 1 || listaK[liczbaK].w1 > liczbaW)
{
printf("Niepoprawny nr wierzcholka!\n");
wierzcholekOk = 0;
}
} while(wierzcholekOk == 0);
// wprowadzanie wierzcholka 2 krawedzi
do
{
printf("Nr wiedzcholka 2: (1-%d)\n", liczbaW);
scanf("%d", &listaK[liczbaK].w2);
wierzcholekOk = 1;
// weryfikacja
if(listaK[liczbaK].w2 < 1 || listaK[liczbaK].w2 > liczbaW)
{
printf("Niepoprawny nr wierzcholka!\n");
wierzcholekOk = 0;
}
} while(wierzcholekOk == 0);
liczbaK++;
// pytanie, czy dalej wprowadzac krawedzie?
printf("Wprowadzic nastepna krawedz? (1/0):\n");
scanf("%d", &odp);
} while(odp == 1 && liczbaK < MAX_LICZBA_KRAW);
// wyswietl stopnie wierzcholkow
printf("\nSTOPNIE WIERZCHOLKOW:\n");
int w;
int stopienG = 0;
for(w=1; w<=liczbaW; w++)
{
int j;
int stopienW = 0;
for(j=0; j<liczbaK; j++)
{
// biezacy wierzcholek jest powiazany z biezaca krewedzia - zwieksz stopien
if(listaK[j].w1 == w)
{
stopienW++;
}
if(listaK[j].w2 == w)
{
stopienW++;
}
// zapamietanie najwiekszego stopnia wierzcholkow
if(stopienW > stopienG)
{
stopienG = stopienW;
}
}
printf("W%d - %d\n", w, stopienW);
}
// wyswietl stopien grafu
printf("\nSTOPIEN GRAFU:\n%d\n\n", stopienG);
system("PAUSE");
return 0;
}