Olá,
Não sou nenhum programador experiente, porém fui solicitado em uma matéria da faculdade para implementar um código de Monte Carlo em qualquer linguagem à minha escolha, então fiz em C.
O único problema é que o programa não está rodando direito. Um dos vetores assume alguns valores estranhos, e não sei como acontece isso. Alguém poderia por favor me ajudar?!
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main ()
{
int N=0;
int classes[N];
double atend[N];
double freq[N];
int freqtotal=0;
double freqac[N];
int S[100];
int A=0,B=0;
int SIM=0;
double media=0;
int i,j;
printf("Bem-vindo! Comece o programa digitando quantia de classes utilizada:\n");
scanf("%d",&N);
printf("Bem-vindo! Comece o programa digitando a media das classes utilizadas:\n");
for(i=0;i<N;i++)
{
scanf("%d",&classes);
}
printf("Agora digite frequencia de cada classe:\n");
for(i=0;i<N;i++)
{
scanf("%lf",&atend);
}
printf("Digite o numero de simulacoes desejadas:\n");
scanf("%d",&SIM);
for(i=0;i<N;i++) /*função para definir a frequencia total*/
{
freqtotal = freqtotal + atend;
}
for(i=0;i<N;i++) /*função para saber a % da quantia de atendimentos em cada classe*/
{
freq = (atend/freqtotal);
}
for(i=0;i<N;i++) /*função para conseguir frequencia acumulada*/
{
freqac = freqac[i-1] + freq;
}
for(j=0;j<5;j++) /*função para preencher o Vetor S que contém as médias das classes espalhadas de acordo com a frequencia acumulada*/
{
for(i=freqac[j];i<100;i++)
{
S=classes[j];
}
}
for(i=0;i<SIM;i++) /*serve para gerar um humero aleatorio de 0 a 99 e procurar sua posição no vetor S e adicionar a um número A, do qual será feita uma média no final para representar as amostras de cada simulação*/
{
B=0;
srand((unsigned)time(NULL));
B = rand() % 100;
A = A + S;
}
media = (A/SIM);
printf("A media e %lf",media);
return 0;
}