Programma aggiornato. Per mia comodità ho lasciato i casuale1,2,3 e per la dimensione di population ho pensato che dovrebbe essere T, ma ovviamente non lo potevo mettere come dimensione di un array, allora sbaglio io o c'è un modo per farlo?
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 100
int main()
{
int life[MAX]={0},N,T,i=0,j,newlife[MAX],temp,seed,casuale1,casuale2,casuale3;
seed = time(NULL);
srand(seed);
do{
printf("Inserisci un numero N, 1<=N<=100\n");
scanf("%d",&N);
}while(N <= 0 || N> MAX);
do{
printf("Inserire un numero positivo minore uguale di 1000\n");
scanf("%d",&T);
} while(T<=0 || T>1000);
int population[MAX]={0};
for (i=0;i<T;i++)
{
casuale1 = rand() % N;
casuale2 = rand() % N;
casuale3 = rand() % N;
life[casuale1] = 1;
life[casuale2] = 1;
life[casuale3] = 1;
if ((casuale1)==(casuale2))
{
casuale1+=1;
}
else if ((casuale1)==(casuale3))
{
casuale1+=1;
}
else if ((casuale2)==(casuale3))
{
casuale3=casuale2+2;
}
for(j=0;j<N;j++)
{
if ((j-1) == (N))
{
life[j+1] = life[0];
}
else if ((j) == (-1))
{
life[j-1] = life[N-1];
}
else if (life[j+1]==1 && life[j-1]==1)
{
newlife[j]=0;
}
else if (life[j+1]==1 || life[j-1]==1)
{
newlife[j]=!life[j];
}
else if ((life[j+1] && life[j-1])==0)
{
temp = newlife[j];
newlife[j]=temp;
}
else if (newlife[j]==1 || life[j]==1)
{
population[i]++;
}
}
for (j=0;j<N;j++)
{
printf("newlife[%d]=%d\n",j,newlife[j]);
printf("\n");
life[j] = newlife[j];
newlife[j]=0;
}
}
int min=population[0];
int max=population[0];
for(i=0;i<N;i++)
{
if(population[i] > max)
{
max = population[i];
}
}
for(i=0;i<N;i++)
{
if(population[i] < min)
{
min = population[i];
}
}
printf("Il massimo valore di population[] e': %d\n",max);
printf("Il massimo valore di population[] e': %d\n",min);
printf("L'ultimo valore di population[] e': %d\n",population[MAX-1]);
return 0;
}