Graf nieskierowany - obliczanie stopni

0

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;
}
 
0
bizgho napisał(a):

... lecz w tej chwili nie moge go uruchomić ...
Jak antivirus się burzy to dodaj jako wyjątek lub wyłącz antivirusa na chwile.

0

Haha bardzo smieszne :) Koledzy chociaz naprowadzcie :)

0

Odpalalem ten program na konsoli gdzie nie ma antyvira. A czy u was bez problemu sie kompiluje i uruchamia?

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