#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.