• Sábado 12 de Julio de 2025, 06:21

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - tux-man

Páginas: [1]
1
C/C++ / Re: Problemas Con Retorno De Valor(funciones)
« en: Sábado 20 de Octubre de 2007, 02:00 »
Hola, revisé tu código y te corregí algunos errores que tenías.
Saludos...


#include <stdio.h>
#include <conio.h>
#include <string.h>
void carga1 (char (*)[3],char (*)[30]);
void carga2 (int (*)[3],int (*)[3], char (*));
int busq1(char (*)[3],char *);
int busq2(char (*)[3],char *);
void procesar(char (*)[3], int *);
void mostrar1(int *,char (*)[30]);
void mostrar2(int (*)[3],char (*)[30]);
void main(void)
{
int vcp[10];
char vciu[3][3];
char vnom[3][30];
int mpu[3][3],mdist[3][3];

carga1(vciu,vnom);
carga2(mpu,mdist,vciu);
procesar(vciu,vcp);
mostrar1(vcp,vnom);
mostrar2(mdist,vnom);
getch();
}

void carga1 (char (*pcc)[3],char (*pnm)[30])
{
  int i=0;
  for(; i<3; i++)
  {
    gets(pcc);
    gets(pnm);
  }
getch();
}
void carga2 (int (*mp)[3],int (*md)[3], char *pcc )
{
  char co[3],cd[3];
  int posd,poso;
  fflush(stdin);
  printf("\n ciudad de origen ");
  gets(co);
  fflush(stdin);
  printf("\n ciudad de destino ");
  gets(cd);

    posd=busq1(pcc,cd);
    poso=busq2(pcc,co);

  printf("\n ingrese precio ");
  scanf("%d",&mp[poso][posd]);
  printf("\n ingrese distancia ");
  scanf("%d",&md[poso][posd]);

}
void procesar(char (*pcc)[3], int *pcp)
{
  char co[3],cd[3];
  int cant,posd,i=0;

  for(; i<10; i++)
  {
    pcp=0;
  }

  fflush(stdin);
  printf("\n ciudad de origen ");
  gets(co);
  fflush(stdin);
  printf("\n ciudad de destino ");
  gets(cd);
  printf("\n cantidad pasajes vendidos  ");
  scanf("%d",&cant);

  while(cant!=0)
  {
    posd=busq1(pcc,cd);
    pcp[posd]+=cant;

  }
getch();
}
int busq1 (char (*pcc)[3], char *d)
{
  int i=0,pos;
  while(strcmp(pcc,d)!=0 && i<3)
  {
      i++;
  }
  if(strcmp(pcc,d)==0)
  {
    pos=i;
  }
  else
  {
    pos=-1;
  }

  return pos;

}

int busq2 (char (*pcc)[3], char *o)
{
  int i=0,pos;
  while(strcmp(pcc,o)!=0 && i<3)
  {
      i++;
  }
  if(strcmp(pcc,o)==0)
  {
    pos=i;
  }
  else
  {
    pos=-1;
  }

  return pos;

}
void mostrar1(int *pcp,char (*pnm)[30])
{
  int max,posmx,i=0;
  max=pcp[0];
  posmx=0;

  for(; i<10; i++)
  {
    if(pcp>max)
    {
      max=pcp;
      posmx=i;
    }
  }

printf( " la ciudad con mayor cantidad de pasajeros su nombre es %s \n",pnm[posmx]);
getch();
}
void mostrar2(int (*md)[3],char (*pnm)[30])
{
  int mx,pmx,i=0,j=0;

  for(; i<3; i++)
  {
    mx=md[0];
      pmx=0;
    for(; j<3; j++)
      {
      if(md[j]>mx)
      {
        mx=md[j];
        pmx=j;
      }
      }
  printf( " ciudad %s ciudad mas distante es %s \n",pnm,pnm[pmx]);
  }
getch();
}

Páginas: [1]