• Viernes 15 de Noviembre de 2024, 07:35

Autor Tema:  Errores al compilar  (Leído 1020 veces)

incepator

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Errores al compilar
« en: Martes 17 de Marzo de 2009, 23:04 »
0
tengo el siguiente problema y el código que yo he escrito pero al compilar me dan errores y no se como corregirlos
si alguien me puede ayudar o darme alguna ideea?????!!!!! He marcado las lineas con errores
Este programa debe generar una serie de datos aleatorios X que representan,
pedidos de clientes, sabiendo que existen 10 clientes, cada uno pide por un
importe z que tambien se genera aleatoriamente con valores de 50 a 100.Una vez
generados los pedidos en un total de 100, el programa debe hacer un itinerario
de servicio, teniendo en cuenta que hay que servir primero al que más pedidos
ha hecho y en caso de igualdad en número de pedidos, al que mayor importe tenga,
es decir programa debe listar el orden de reparto con el criterio antes expuesto
para comprobar si el itinerario es correcto, hay que listar también el número de
pedidos de cada cliente y el importe total de sus pedidos.

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <dos.h>
#define dim 100
#define dim2 10

typedef struct
{
char codclien[9];
int imp_ped[dim];
}pedidos;
 typedef struct
 {
  char clientes[9];
  int num_pedidos;
  int imp_acum;
}datos;
void generar_vector(pedidos[dim],int); //genera los pedidos y los importes
void shell(datos[dim2],int);
void listado (datos[dim2]);

main()
{
 pedidos vector[dim];
 datos vec[dim2];
 char cod[10][9]={"cliente1","cliente2","cliente3","cliente4","cliente5","cliente6","cliente7","cliente8","cliente9","cliente10"};
 int k,i;
 randomize();
 generar_vector(vec,dim);// resulta los pedidos y los importes
 for (k=0;k<dim2;k++)
  {
   strcpy(vec[k].clientes,cod[10][9]);   -ERROR
   vec[k].num_pedidos=0;
   vec[k].imp_acum=0;
  }
   for(k=0;k<dim2;k++)
   {
    for (i=0;i<dim;i++)
     {
      strcmp(vec[k].clientes,vector.codclien);
      if (strcmp==0)
       {
         vec[k].num_pedidos++;
         vec[k].imp_acum=vec[k].imp_acum+vector.imp_ped; -ERROR
        }
      }
    }
  listado(vec);
  shell(vec,dim2);
  printf ("nOrden de reparto:n");
  listado(vec);
   if(vec[k].num_pedidos==vec[k+1].num_pedidos)
     {
      if(vec[k].imp_acum<vec[k+1].imp_acum)
      printf("%5s%5s%7st",vec[k+1].clientes, vec[k+1].num_pedidos,vec[k+1].imp_acum);
     }
    else
    listado(vec);

}


 void generar_vector(pedidos vector[dim],int [dim],char cod)
 {
  int i;
  for (i=0;i<dim;i++)
  {
   strcpy(vector.codclien,cod[random(10)]);-ERROR
   vector.imp_ped=random(50)+50;-ERROR
  }
    return;
  }

  void listado(datos vec[dim2])
  {
   int i;
   printf("n      Cliente      Pedidos     Importepedidosn");
    for(i=0;i<dim2;i++)
    {
      printf("%5s%5s%7st",vec.clientes, vec.num_pedidos,vec.imp_acum);
    }
    return;
    }

    void shell(datos vec[dim2],int tam)
    {
     int t,sw,lon;
     datos aux;
     lon=tam/2;
     do
      {
       do
       {
        sw=0;
         for(t=0;t<tam-lon;t++)
         {
          if (vec[t].num_pedidos>vec[t+lon].num_pedidos)
           {
            aux=vec[t];
            vec[t]=vec[t+lon];
            vec[t+lon]=aux;
            sw=1;
            }
          }
         }while (sw==1);
         lon=lon/2;
        }while (lon>=1);
        return;
     }

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Errores al compilar
« Respuesta #1 en: Miércoles 18 de Marzo de 2009, 09:58 »
0
Utiliza las etiquetas de código, nombra el número de la/s línea/s que te da/n error y especifica qué error.

Un poco de tu parte no haría daño a los que queremos ayudarte  &lt;_&lt;

betopin

  • Miembro activo
  • **
  • Mensajes: 93
  • Nacionalidad: co
    • Ver Perfil
    • http://www.programasenc.blogspot.com
Re: Errores al compilar
« Respuesta #2 en: Miércoles 18 de Marzo de 2009, 19:49 »
0
Son muchas las fallas

1) Mira lo que defines

Código: C
  1. void generar_vector(pedidos[dim],int); //genera los pedidos y los importes
  2.  

Mira lo que envias

Código: C
  1. generar_vector(vec,dim);// resulta los pedidos y los importes
  2.  

2) Cadenas

Código: C
  1. strcpy(vec[k].clientes,cod[10][9]); -ERROR
  2.  

Estas tratando de guardar un monton de palabras que estan en diferentes pocisiones de memoria en cod en vec[k].clientes

Igualmente -ERROR no esta difinido ni debe por que estar ahi

3) Datos

Código: C
  1. vec[k].imp_acum=vec[k].imp_acum+vector[i].imp_ped; -ERROR
  2.  

Estas tratando de guardar en una variable, todas las pocisiones de un array. Y de nuevo la falla con ERROR

4)
Código: C
  1. strcpy(vector[i].codclien,cod[random(10)]);-ERROR
  2.  

Recuerda que cod es una matriz y codclien un vector. Y de nuevo ERROR

5)
Código: C
  1. void generar_vector(pedidos vector[dim],int [dim],char cod)
  2.  

Estas tratando de enviar mas argumentos de los que puedes

6) Faltan llaves }

7)
Código: C
  1. return;
  2.  

No estas devolviendo nada

Saludos