hola, tengo un inconveniente, como puedo retornar varios arreglos, tengo este ejercicio
int datos_candidatos(int i)
{
int id[10];
int voto[10],colab[10],edad[10];
char candidato[10];
char* nomCan[10];
char dato;
printf("Ingrese nombre del candidato:");
scanf("%s",&candidato);
nomCan =(char*)malloc(strlen(candidato)+1);
strcpy(nomCan ,candidato);
printf("Ingrese edad:");
scanf("%d",&edad );
printf("Ingresen numero de colaboradores de candidatura \n");
scanf("%d",&colab );
return(nomCan ,edad ,colab );
}
int main()
{
int num,num2,num3;
int edad[10],colab[10];
int id[10],i;
int voto[10],votacion[10];
char candidato[10];
char* nomCan[10];
i=0;
do{
printf("1. INGRESO DATOS CANDIDATOS \n");
printf("2. SALIR\n");
printf("ELIJA UNA OPCION [1-5]\n");
scanf("%d",&num);
switch(num){
case 1:
id =i;
(nomCan , edad ,colab )=datos_candidatos(i);
voto=0;
i++;
break;
case 2:
break;
default:
printf("La opcion ingresada es incorrecta\nvuelva a ingresarlo\n");
break;
}
}
while(num!=2);
system("pause");
return 0;
}
Define una struct/clase
Devuelve un array de objetos de ese tipo.
Si son pocos yo suelo pasar el array en el parámetro de la función por referencia.
PD: Utiliza las etiquetas Geshi para postear código coloreado en el foro.
printf("Ingrese edad:");
scanf("%d",&edad );
Coloca el código entre etiquetas de Código GeSHi... :rolleyes: :rolleyes:
Los arrays también puedes pasarlos como parámetros (exactamente lo que pasas es un puntero al array) y modificarlos en la función. Además no viene mal recalcar que no es necesario pasarlos por referencia a no ser que vayas a reservar/liberar memoria.
void f(int *numeros, int size){
for(int i = 0; i < size; ++i)
numeros[i] = i;
}
int main(){
int numeros[10];
f(numeros, 10);
// Mostrar array numeros. Salida: 0 1 2 3 4 5 6 7 8 9
}