elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / programa sobre colas en: 25 Junio 2011, 00:14 am
este programa no tiene errores al compilarlo pero cuando lo corro no funciona alguna sugerencia sobre que es lo q esta mal??  :-\
//programa que utiliza colas con memoria dinamica y calcula el promedio de los elementos
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

struct nodocola{
       int dato;
       nodocola *sig;
 };
typedef struct nodocola nodocola;

struct cola{
  nodocola *frente , *fin;
};
typedef struct cola cola;

void anadec(cola *,int);
int borrarc(cola *);
void inicializa(cola );
int vacia(cola );
void promedio(cola *);
void mostrarcola(cola *);
void menu(void);

int main(){
 int op,ban=1,x,n=1,z;
 cola c;
 inicializa(c);
 printf("\n PROGRAMA QUE UTILIZA COLAS Y CALCULA EL PROMEDIO DE SUS ELEMENTOS ");
 menu();
 while(ban==1){
  do{
  printf("\nDigite la opcion a utilizar:  ");
  scanf("%i",&op);
  }while(op<1 || op>6);
  if(op==1){
    if(n==1){
     printf("\n ¿Que dato desea agregar?");
     scanf("%i",&x);
     anadec(&c,x);
     printf("\n otro dato?? si-->1   no-->0" );             
     scanf("%i",&n);
     }
    else{   
      printf("\nDigite la opcion a utilizar:  ");
      scanf("%i",&op);
      }
  }
  if(op==2){
    borrarc(&c);
    printf("\n Dato borrado!!!!!!");                     
   }           
  if(op==3)           
    promedio(&c);           
  if(op==4)
    mostrarcola(&c);
  if(op==5)
    ban=0;             
 }//fin while   
 //getch();
}//fin main

void anadec(cola *c, int e){
 nodocola *a;
 a=(nodocola*)malloc(sizeof(nodocola));
 a->dato=e;
 a->sig=NULL;
 if(vacia(*c))
  c->frente=a;
 else
  c->fin->sig=a;
  c->fin=a;
} //fin anadec

int borrarc(cola *c){//------------------------------------------
 nodocola *a;
 int x;
 if(!vacia(*c)){
  a=c->frente;//--------
  x=a->dato;
  c->frente=c->frente->sig;
 if(c->frente==NULL)
  c->fin=NULL;
 free(a);
 printf("\n numero: %i ",x);//---------
 }
 else{
  puts("Error Eliminacion de una Cola Vacia") ;
  exit(-1) ;
 }
} // fin borrarc

void inicializa(cola c){
 c.frente=NULL;
 c.fin=NULL;
} // fin inicializa

int vacia(cola c){
  return(c.frente==NULL);
} // fin vacia

void menu(void){
 printf("\n Agregar un dato opcion      -->  1");
 printf("\n Borrar un dato  opcion      -->  2");
 printf("\n Calcular el promedio opcion -->  3");
 printf("\n Mostrar los datos           -->  4");
 printf("\n Salir del programa          -->  5");
}

void mostrarcola(cola *c){
/* Muestra los elementos de una cola
que se le pase como parametro */
int e;
nodocola *aux;
aux=c->frente;
while (aux!=NULL){
 e=aux->dato;
 printf("%d ", e);
 aux=aux->sig;
} // while
} // fin mostrar cola

void promedio(cola *c){
 int total=0,num=0;
 float prom;
 nodocola *aux;
 aux=c->frente;
 while(aux!=NULL){
   total=+aux->dato;
   num++;
   aux=aux->sig;
 }//fin while
 prom=total/num;
 printf("\n El promedio de los datos es: %.2f ",prom);
}//  fin promedio

Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines