goj1
(usa Debian)
Enviado em 11/04/2011 - 13:44h
Olá galera.
Fiz a fila abaixo, mas ela não insere, não retira e não imprime. Compila normalmente.
Na execução ocorre uma mensagem de falha de segmentação:
Segmentation fault
O fonte da fila:
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#define TAMANHO 10
class minhaFila{
private:
int inicioFila, fimFila, f[TAMANHO];
public:
void inicializaFila(){
for(int i=0; i<TAMANHO; i++){
f[i]=0;
}
inicioFila=fimFila=-1;
}
void insere(int elemento){
if(fimFila!=TAMANHO){
fimFila++;
f[fimFila]=elemento;
}
}
void retira(){
if(inicioFila!=fimFila){
int elementoRetirado;
inicioFila++;
elementoRetirado=f[inicioFila];
f[inicioFila]=0;
//return elementoRetirado;
//printf("O elemento retirado foi %d: ",&elementoRetirado);
}
else {printf("A fila está vazia!");}
}
void imprimeFila(){
for(int i=TAMANHO; i<=f[fimFila]; i--){
printf("%d\n",f[i]);
}
}
};
int main(){
minhaFila f1;
int insereElemento,op;
//f1.inicioFila();
printf("\n1- Inicializar fila \n2- Para inserir \n3- Para retirar \n4- Mostrar fila \n5- Sair\n\n");
scanf("%d",&op);
switch(op){
case 1:
f1.inicializaFila();
break;
case 2:
printf("Digite um número inteiro: ");
scanf("%u",&insereElemento);
f1.insere(insereElemento);
//return main();
break;
case 3:
f1.retira();
//return main();
break;
case 4:
f1.imprimeFila();
//return 0;
break;
}
system("PAUSE");
return 0;
}