Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: elgordo19988 en 9 Septiembre 2016, 17:57 PM

Título: error al crear funcion
Publicado por: elgordo19988 en 9 Septiembre 2016, 17:57 PM
hola, soy estudiante y soy nuevo en esto de programar por lo que se me pasan muchos detalles pero he estado creando un programa y me estaba llendo muy bien pero ahora que creo la funcion para realizar lo ultimo que se me pide en un programa de prueba me sale un error en el compilador he intentado borrar la funcion crear una nueva, he cambiado punteros he intentado creando vectores y demas y sigue saliendo el mismo error

[Error] cannot convert 'char (*)[10]' to 'char*' for argument '3' to 'void velocidadd(aspirante*, int, char*, float*, char*)'

hay esta el codigo  


#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
#include <math.h>
#define z 36
//estrutura
typedef struct
  {
    char sexo,clave[10];
int edad;  
  }a;
typedef struct  
  {
  char nombre[25],exp[3];
  a datos;
float peso;
   }aspirante;
   
//prototipos
void datoss(aspirante v[],int *px);
float mujeres(aspirante ab[],int d);
float prome(aspirante g[],int m,float *pprome);
void velocidadd(aspirante abb[],int gg,char *codigog,int *tsg,char *nombree);
//funcion principal
main()
{
//declaracion de variables

aspirante inf[z];
int x,contador=0,j=0,bandera=0,u=0,k=0,tsg;
float promed=0,velocidad;
char codigo[10],nom[20];

// carga de datos de cada aspirante
datoss(inf,&x);
 
  //parte B mujeres y porcentaje con experiencia
 
  printf("el porcentaje de mujeres con experiencias es %.2f",mujeres(inf,x));

getche();
clrscr();

  //calcular edad promedio de los aspirantes sin experiencia
contador=prome(inf,x,&promed);

printf("\n el promedio de edad de los aspirantes sin esperiencia es %.2f\n\n",promed);
printf("\n la cantida de aspirantes cuyo peso supera el general es %d \n\n",contador);

getche();
clrscr();

//4 calculo de la velocidad
printf("ingrese clave del aspirante que desea evaluar\n\n");
fflush(stdin);
gets(codigo);
printf("\n ingrese tiempo en sg\n\n");
fflush(stdin);
scanf("%d",&tsg);
 

velocidadd(inf,x,&codigo,&tsg,&nom);



}  

//parte A
void datoss(aspirante v[],int *px)
{
  int x=0,a=0;

char r,r1;
 do
   {
 printf("\n ingrese nombre completo \n\n");
 fflush(stdin);
 gets(v[x].nombre);
 printf("\n ingrese peso\n\n");
 fflush(stdin);
 scanf("%f",&v[x].peso);
         do
           {
             printf("\n ingrese sexo M(masculino) y F(femenino)\n\n");
     fflush(stdin);
     scanf("%c",&v[x].datos.sexo);
 v[x].datos.sexo=tolower(v[x].datos.sexo);
}while(v[x].datos.sexo!='m' && v[x].datos.sexo!='f');

 printf("\n ingrese la edad \n\n");
 fflush(stdin);
 scanf("%d",&v[x].datos.edad);
 printf("\n ingrese clave\n \n");
 fflush(stdin);
 gets(v[x].datos.clave);
 do
   {
   printf("\n tiene experiencia  S/N \n\n");
       fflush(stdin);  
       scanf("%c",&r1);
       r1=tolower(r1);

}while(r1!='s' && r1!='n');
     if(r1=='s')
        strcpy(v[x].exp,"SI");
       else
         strcpy(v[x].exp,"NO");
     
 x++;
     printf("\n\n desea ingresar otro? S/N \n\n");
     fflush(stdin);
     scanf("%c",&r);
     r=tolower(r);
     
}while(r=='s' && x<z);  

 *px=x;

 
 }  
 
 //parte B
float mujeres(aspirante ab[],int d)
 {
  int contador=0,contadorcon=0,i;
  float h;  
    for(i=0;i<d;i++)
       {
         if(ab[i].datos.sexo=='f')
  {
     contador++;
     if(strcmpi(ab[i].exp,"si")==0)
                contadorcon++;
  }
 
 }
 
 
  h=((float)(contadorcon)/contador)*100;
 
  return (h);
 
 
 }
 
// parte C
 
 float prome(aspirante g[],int m, float *pprome)
 {
  int i,contador=0,acumpedad=0,contador2=0;
  float acump=0;
 
 for(i=0;i<m;i++)
      {
      acump+=g[i].peso;
  if(g[i].datos.sexo=='m' && strcmpi(g[i].exp,"NO")==0)
        {
                   contador++;
   acumpedad+=g[i].datos.edad;

 }
     
     
  }
 
  *pprome=acumpedad/contador;
  acump=acump/m;
 
    for(i=0;i<m;i++)
        if(g[i].peso>acump)
          contador2++;
 
 

 return (contador2);
 
 }
 
void velocidadd(aspirante abb[],int gg,char *codigog,int *tsg,char *nombree);



Título: Re: error al crear funcion
Publicado por: Poyoncio en 9 Septiembre 2016, 18:12 PM
Con el codigo se resolvera mejor
publicalo entre las etiquetas Geshi que tienes a la derecha al lado de la A roja
Título: Re: error al crear funcion
Publicado por: elgordo19988 en 9 Septiembre 2016, 18:32 PM
ya pude en enviar el código soy algo novato xD, cree la funcion y como me salia el erro no e contiado
Título: Re: error al crear funcion
Publicado por: AlbertoBSD en 9 Septiembre 2016, 20:17 PM
Deberias de llamar a la funcion sin los &

velocidadd(inf,x,codigo,&tsg,nom);

Saludos!