Menú

Mostrar Mensajes

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

Mostrar Mensajes Menú

Temas - diego-4

#1
Hola buenas tardes, no me han explicado bien el tema "estructuras" en funciones y tengo un codigo que si me darian una ayuda podria encarar yo solo .. Muchisimas Gracias .

Errores

Type Mismatch in parameter 3 ESRANGOVALIO
Type Mismatch in parameter 3 CALCIMPFACTURA
Type Mismatch in parameter 1 CALCIMPFACTURA

Este es el codigo

#include <stdio.h>
#include <conio.h>
#define c 1000
struct cliente
{
int numcli,codreg,mincm;
float impabo;

};

int ESRANGOVALIDO(int,int,struct cliente[],int);
int ESRANGOVALIDO2(int,int,int);
float CALCIMPFACTURA(struct cliente ,int[],struct cliente,float,int,int);
int ESFECHAVALIDA(int ,int ,int);
void ORDEN_VECTOR(int,float[],int[],struct cliente);
void SEGMENTO_CONSUMO(struct cliente,int[],int[][5],int);

void main()
{

int numcli,impabo,codigo[3],codreg,minia[20],mincm,fechad,fecham,fechaa,contcli[3],num,flag=0,abonocont=0,mat[3][5],minexc,iv,i,j,b=3;
float minexreg1,total[3],minexreg2,minexreg3,totfactura,costominreg;
char nomtit[41];
struct cliente cli[c];
iv=0;

for(i=0;i<=3;i++)
{
  total[i]=0;
  contcli[i]=0;
}

for(i=0;i<=2;i++)
{
  for(j=0;j<=4;j++)
   {
   mat[i][j]=0;
   }
  }
printf("Monto minuto excedido por Region 1:");
scanf("%f",&minexreg1);
printf("Monto minuto excedido por Region 2:");
scanf("%f",&minexreg2);
printf("Monto minuto excedido por Region 3:");
scanf("%f",&minexreg3);
do
{
printf("Ingresar Numero Cliente(1 a 100000)");
scanf("%d",&cli[iv].numcli);
}
while(ESRANGOVALIDO(1,100000,numcli,iv)==0);

while(flag==0)
{

do
{
printf("Ingresar Fecha vencimiento de Factura:  ej 10/08/2012\n");
scanf("%d/%d/%d",&fechad,&fecham,&fechaa);

}while(ESFECHAVALIDA(fechad,fecham,fechaa)==0);


printf("Ingresar Nombre del Cliente(40 caracteres)");
scanf("%s",&nomtit[iv]);
fflush(stdin);

do
{
  printf("Ingresar Codigo de Region(1 a 3)");
  scanf("%d",&cli[iv].codreg);
}
while(ESRANGOVALIDO(1,3,codreg,iv)==0);

do
  {
   printf("Minutos Incluidos en el Abono(1 a 2000)");
   scanf("%d",&minia[iv]);
  }
while(ESRANGOVALIDO(1,2000,minia,iv)==0);

do
  {
   printf("Minutos Consumidos en el Mes(Mayor que 0)");
   scanf("%d",&cli[iv].mincm);
  }
while(ESRANGOVALIDO(1,9999999,mincm,iv)==0);

do
  {
   printf("Importe del Abono(Mayor que 0)");
   scanf("%d",&impabo[iv]);
  }
while(ESRANGOVALIDO(1,9999999,impabo,iv)==0);

  if(cli[iv].codreg==1)
    {
     if(cli[iv].mincm<=minia[iv])
      {
       minexc=0;
       abonocont++;
       totfactura=CALCIMPFACTURA(impabo,minia,mincm,minexreg1,minexc,iv);
       costominreg=minexreg1;
       }
      else
       {
         minexc=cli[iv].mincm-minia[iv];
         totfactura=CALCIMPFACTURA(impabo,minia,mincm,minexreg1,minexc,iv);
         costominreg=minexreg1;
       }
     }
  else
      {
        if(cli[iv].codreg==2)
         {
          if(cli[iv].mincm<=minia[iv])
            {
             minexc=0;
             abonocont++;
             totfactura=CALCIMPFACTURA(impabo,minia,mincm,minexreg2,minexc,iv);
             costominreg=minexreg2;
             }
         else
          {
           minexc=cli[iv].mincm-minia[iv];
           totfactura=CALCIMPFACTURA(impabo,minia,mincm,minexreg2,minexc,iv);
           costominreg=minexreg2;
          }
         }

         else
          {
           if(cli[iv].mincm<=minia[iv])
             {
              minexc=0;
              abonocont++;
              totfactura=CALCIMPFACTURA(impabo,minia,mincm,minexreg3,minexc,iv);
              costominreg=minexreg3;
             }
            else
             {
              minexc=cli[iv].mincm-minia[iv];
              totfactura=CALCIMPFACTURA(impabo,minia,mincm,minexreg3,minexc,iv);
              costominreg=minexreg3;
             }
           }
         }

  total[cli[iv].codreg-1]+=totfactura;


SEGMENTO_CONSUMO(codreg,mincm,mat,iv);


clrscr();
contcli[cli[iv].codreg-1]++;
printf("Ingresar nuevo cliente?(1-SI ; 2-NO)");
scanf("%d",&num);
clrscr();
if(num==1)
{
   do
    {
     iv++;
     printf("Ingresar Numero Cliente(1 a 100000)");
     scanf("%d",&numcli[iv]);
    }
   while(ESRANGOVALIDO(1,100000,numcli,iv)==0);
}
else flag++;
}



for(i=1;i<=3;i++)
{
  codigo[i-1]=i;
}

ORDEN_VECTOR(b,total,contcli,codigo);

printf("\nCodigo de Region\tCantidad de Abonados\tMonto Facturacion");
for(i=0;i<=2;i++)
{
  printf("\n%d",codigo[i]);

  printf("\t%d",contcli[i]);

  printf("\t%.2f",total[i]);
}



printf("\n\n\t\tMinutos Consumidos(por segmentos)");
printf("\nCodigo de Region\t 0 a 1000\t 1001 a 1500\t 1501 a 2000\t >2000\n");
for(i=0;i<=2;i++)
{printf("\n");
  for(j=0;j<=4;j++)
  {
printf("\t%d   ", mat[i][j]);
  }
}
getch();

}

int ESRANGOVALIDO(int a,int b,struct cliente cli[],int d)
{
if(cli[d].mincm>=a&&cli[d].mincm<=b)

   return 1;
else return 0;
}

float CALCIMPFACTURA(struct cliente cli,int b[],struct cliente cli,float k,int d,int e)
{

  if(cli[iv].mincm<=b[e])
   {

    return cli[e].impabo;


   }
  else
    {
     cli[e].mincm=cli[e].mincm+(d*k);
     return cli[e].mincm;

    }
}

int ESRANGOVALIDO2(int a,int b,int c)
{
if(c>=a&&c<=b)
  return 1;
  else return 0;
}

int ESFECHAVALIDA(int d,int m,int a)
{
   if(ESRANGOVALIDO2(2010,2020,a)==1)
      {
        if(m==2)
          {
           if(a%4==0 && (a%100!=0 || a%400==0))
             {
              if(ESRANGOVALIDO2(1,29,d)==1)
                 return 1;
                 return 0;
              }
            else
                {
                 if(ESRANGOVALIDO2(1,28,d)==1)
                   return 1;
                   return 0;
                }
            }
          else
           {
              if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)
                {
                 if(ESRANGOVALIDO2(1,31,d)==1)
                 return 1;
                 return 0;
                }
              else
                  {
                   if(ESRANGOVALIDO2(1,30,d)==1)
                   return 1;
                   return 0;
                   }
             }
           }
        else return 0;
      }

void ORDEN_VECTOR(int n,float a[],int b[],int c[])
{ int i,j,aux,aux2,aux3;
for(i=0;i<=n-1;i++)
   {
    for(j=1;j<n-i;j++)
     {
      if(a[j-1]<a[j])
      {
       aux=a[j];
       a[j]=a[j-1];
       a[j-1]=aux;

       aux2=b[j];
       b[j]=b[j-1];
       b[j-1]=aux2;


       aux3=c[j];
       c[j]=c[j-1];
       c[j-1]=aux3;
      }
     }
    }
}


void SEGMENTO_CONSUMO(struct cliente cli,int b[],int c[][5],int d)
{

   c[0][0]=1;
   c[1][0]=2;
   c[2][0]=3;

   if(b[d]>0&&b[d]<=1000)

    c[cli[d].codreg-1][1]++;
     else
       {
        if(b[d]>=1001&&b[d]<=1500)

          c[cli[d].codreg-1][2]++;
            else
             {
              if(b[d]>=1501&&b[d]<=2000)

                  c[cli[d].codreg-1][3]++;

              else c[cli[d].codreg-1][4]++;
       }
             }


   }
#2
Buenas noches a todos , tengo un problema con este codigo en la funcion importe... estuve leyenedo como retonar una funcion que no recibe nada y q devuelve un scanf... pero no entendi sinceramente ... quisiera saber como podria ponerlo para que me funcione el programa... ahi comento en las lineas q me tira error


#include <stdio.h>
#include <conio.h>

int imporencomienda(int,int,int,int);
void importe ();
void main()
{int p,camion=0,a,b,z,c,impt=0,carga,impc;
float prome1;
a=importe(); ////not an allowed type
b=importe();                  ////not an allowed type
c=importe();           ////not an allowed type
do
  {
   printf("Ingresar Peso");
   scanf("%d",&p);
   }
   while(p<=0&&p>=200);
  printf("\t\tDespacho de Encomiendas");
while(p>0)
{
  camion++;
  carga=0;
  impc=0;
  while(carga+=p<=2000&&p>0)
   {
    carga+=p;
    impc=imporencomienda(p,a,b,c);

    do
  {
   printf("Ingresar Peso");
   scanf("%d",&p);
   }
   while(p<=0&&p>=200);
  }
  printf("Camion %d Carga %d Importe por Camion %d",camion,carga,impc);
if(carga>1800)
  {
   impt+=impc;
   c++;
   }
  else ;
}
prome1=impt/c;
printf("Prome 90% %f",prome1);
getch();
}
int imporencomienda(int a,int b, int c, int d)
{
if(a>0&&a<=10)
   return(b);
else
  if(a>10&&a>=40)
  return(c);
else
  return(d);
  }
void importe(x)
{
scanf("%d",&x);
return(x);      ////importe() cannot return a value
}


gracias :)
#3
Programación C/C++ / Duda con For,While , y Do while!
24 Septiembre 2010, 05:52 AM
hOla a todos , necesito una gran ayudita , para poder seguir el codigo para mañana :D... mi ejercicio consta en ingresar una cantidad de N juegos de datos, El valor N (mayor q 9 y menor q 37) debe ser ingresado y validado al comienzo.
Codigo:

#include <stdio.h>
#include <conio.h>


void main()

{
int n;
do{
   printf("Ingrese N cantidad de juegos de datos a averiguar : " );
   scanf("%d", &n);
   }
while(n<=9||n>=37);
clrscr();

getch();

}


Creo que esta bien... pero despues no se como seguir porq me piden Verificar la validez  dentro de cada juego de datos  para q se cumpla una cierta condicion
si algun dato es incorrecto, que rechaze el juego por completo
y alfinal informar : que datos resultaron incorrectos
Agradeceria su ayuda, :D ya q no se si seguir con un for o un while u otro do while ;)
#4
Hola , perdon por la molestia pero tengo una re duda
=D

yo tengo este codigo fuente

#include <stdio.h>
#include <conio.h>

void main()
{
int NumCli, MinInAbo, MinCon;
char NomTit[20], ApeTit[20];
float ImpAbo, CosMinExc, ImpFac;
printf("Numero de Cliente: ");
scanf("%d",&NumCli);
printf("\nNombre y Apellido del Titular: ");
scanf("%s %s",&NomTit,&ApeTit);
printf("\nImporte del Abono: ");
scanf("%f",&ImpAbo);
printf("\nMinutos Incluidos en el Abono: ");
scanf("%d",&MinInAbo);
printf("\nMinutos Consumidos: " );
scanf("%d",&MinCon);
printf("\nCosto del Minuto Excedente: ");
scanf("%f",&CosMinExc);
clrscr();
printf("Numero del Cliente: %d",NumCli);
printf("\nNombre del Titular: %s %s",NomTit,ApeTit);
printf("\nImporte del Abono: $ %f pesos",ImpAbo);
printf("\nMinutos Incluidos en el Abono: %d minutos",MinInAbo);
printf("\nMinutos consumidos: %d minutos",MinCon);
printf("\nCosto del Minuto Excedente: $ %f pesos",CosMinExc);
   if(MinCon>MinInAbo)
   {
   ImpFac=ImpAbo+(MinCon-MinInAbo)*CosMinExc;
   printf("\nImporte de la factura: $ %f pesos",ImpFac);
   }
   else
   {
   printf("\nImporte de la factura: $ %f pesos",ImpAbo);
   }
getch();
}



EN ESTA PARTE LA PROFESORA MARCO "USAR UNA VARIABLE PARA NOMBRE Y APELLIDO!
scanf("%s %s",&NomTit,&ApeTit);

plis ayudissss ^^ graciasss =D
#5
Programación C/C++ / duda, perdon recien empiezo!!!
3 Septiembre 2010, 21:39 PM

Tengo este codigo, porq al ingresar el numero y apretar enter, me pone

ej: el cuadrado de 3.00000000 es 9.00000000
Gracias si me ayudan ... 

#include <stdio.h>
#include <conio.h>
void main()
{
float x,c;
printf("Digite un numero:");
scanf("%f",&x);
c=x*x;
printf("El cuadrado de %f es %f",x,c);
getch();

}
#6
Programación C/C++ / ayuda plisss!!!
1 Septiembre 2010, 20:41 PM
bueno recien empiezo con esto del c y c++ ... tengo esta codificacion de saber si un año es bisiesto o no... y me tira un error de Declaration terminated incorrectly en la linea del segundo {
PORFAVOR AGRADECESERIA SU AYUDA ^^

aca dejo la codificacion:

#include <stdio.h>
#include <conio.h>


int bisiesto(int);
void main()
{
int B,año;
scanf("%d",&año);
B= bisiesto(año);
if(B==0)
 printf("No es bisiesto");
 getch();
}
int bisiesto(int a);
{
int b
if(a%4==0)
 b=1
else b=0
return( b)
}