FXGO
(usa Ubuntu)
Enviado em 25/01/2017 - 16:54h
Ola pessoal
Estava fazendo um ex de treino para a prova que terei na sexta de programação C.
Estava fazendo um programa, que compilou sem erros e sem warnings, mas ao executa-lo ocorre sempre o erro de falha de segmentação (imagem do núcleo gravada)
Não estou entendendo o que possa ser, já revi o programa montes de vezes e não encontro problema algum. Podem me ajudar?
Deixarei aqui o codigo:
#include <stdio.h>
#include <stdlib.h>
#define NMAX 100
int ler_acessos(int *tempos);
void stats (int *tempos, int n, int *min, int *max, float *med);
int main()
{
int x, y, z, W, cont=2;
int *max, *min;
int tempos[NMAX];
float *med;
while (scanf("%d %d", &x, &y)==2)
{
z=y-x;
tempos[cont-1]=z;
cont++;
}
tempos[0]= cont-1;
W=ler_acessos(tempos);
printf("Numero de acessos:%d", W);
stats(tempos, cont-1, min, max, med);
return 0;
}
int ler_acessos(int *tempos)
{
int x=tempos[0], z=0, acess=0, y, w=2;
while(z<=x)
{
if (tempos[z+1]<120)
{
y=tempos[z+1];
while(y<120)
{
y=y+tempos[z+w];
w++;
}
acess++;
z=z+w;
}
else
{
acess++;
z++;
}
}
return acess;
}
void stats (int *tempos, int n, int *min, int *max, float *med)
{
int sum=0, x=n;
*max=tempos[n];
*min=tempos[n];
while(n>0)
{
sum=sum+tempos[n];
if (tempos[n]>(*max))
{
*max=tempos[n];
}
if (tempos[n]<(*min))
{
*min=tempos[n];
}
n--;
}
*med=(float)sum/x;
printf("Min:%d | Max:%d | Med:%f", *min, *max, *med);
}