0
#include <stdio.h>
#include <stdlib.h>
#include<time.h>
#define MAX_NODES 500
int main()
{
    srand(time(NULL));
    int cost;
    long int i, j, n, ordin, e=0, a[MAX_NODES][MAX_NODES];

    printf("give an growth ordin ");
    scanf("%ld", &ordin);
    n=rand() % ordin;
   //n=number of nodes
    for(i=0; i<n; i++)
    {
        a[i][i]=0;
    }
    for(i=1; i<n; i++)
    {
        a[rand()%i][i]=1;
    }
    for(i=0; i<n; i++)
    {
        for(j=i+1; j<n; j++)
        {
            if(a[i][j]==1)
            {
                a[j][i]=a[i][j];
            }
            else
            {
                a[i][j]=rand()%2;
                a[j][i]=a[i][j];
            }
        }
    }


    for(i=0; i<n; i++)
    {
        for(j=i+1; j<n; j++)
        {
            if(a[i][j]==1)
            {

                cost=rand()%100;
                printf( "%ld ", i);
                printf( "%ld ", j);
                printf( "%d ", cost);
                e++;
               //e=number of edges
            }
        }
   }
}

I dont know what to do if I want to generate values for like 10^3 nodes or more. What did I do wrong? For me, it seems okay. I have a connected undirected graph generator and it doesn't work if I define MAX_NODES >500 . I was thinking it was about the datatype and i put "long int". But it isn't.

Lundin
  • 195,001
  • 40
  • 254
  • 396
ANA
  • 11
  • 2

0 Answers0