Invocacion de Funciones con Punteros
Publicado por Fabian (4 intervenciones) el 22/05/2007 22:31:26
Hola.... Bueno la verdad es que tengo un problemilla que me ha estado matando hace un par de horas y no le encuentro solucion....bueno resulta que tengo lo suiguiente:
#include<stdio.h>
#include<stdlib.h>
int V[10]={1,2,3,1,2,3,1,2,3,1};
int G[10]={1,3,1,3,1,3,1,3,1,3};
int suma(int *p, int *d){
int c=0;
for(int i=0,n=9;i<=9,n>=0;i++,n--){
p=&V[i];
*d=G[n];
c=(*p)+(*d)+c;
}
return c;
}
int multi(int *p, int *d){
int c=1;
for(int i=0,n=9;i<=9,n>=0;i++,n--){
*p=V[i];
*d=G[n];
c=c*(*p)*(*d);
}
return c;
}
main(){
int opc,*p,*d,sum,mult;
int *x=&V[0],*y=&G[10];
MENU:
printf("\t\tSuma o Multiplicacion de Vectores");
printf("\n\nElija Una Opcion:");
printf("\n\n1.- Sumar Todos los Elementos de los Vectores");
printf("\n\n2.- Multiplicar Todos los Elementos de los Vectores");
printf("\n\n3.- Salir");
printf("\n\n\t\t\t\t Opcion: ");
scanf("%d",&opc);
switch(opc){
case 1:{
sum=suma(x,y);
printf("\nLa Suma de los Componentes de los Vectores es: %d\n\n",sum);
system("pause");
system("cls");
goto MENU;
break;
}
case 2:{
mult=multi(x,y);
printf("\nLa Multiplicacion de los Componentes de los Vectores es: %d\n\n",mult);
system("pause");
system("cls");
goto MENU;
break;
}
case 3:
exit(1);
default:{
printf("Opcion no Valida!!!!");
printf("\n\nERROR FATAL.....FORMATEA EL PC!!!! CUECK\n\n");
system("pause");
system("cls");
goto MENU;
}
}
}
pero lo que necesiti es tener una funcion por ejemplo
int func(int *p, int *d, int opc)
y en el main pedir que se escoja la operacion y que desde el main, mediante la opcion me tire a la funcion en la cual debe tener las operaciones....bueno mi duda en si es como invoco la funcion a traves de un numero que infrese el usuario....Bueno esop, si alguien pudiera contestar mi duda estaria muy agradecido!!!1
XD thanks!!!
#include<stdio.h>
#include<stdlib.h>
int V[10]={1,2,3,1,2,3,1,2,3,1};
int G[10]={1,3,1,3,1,3,1,3,1,3};
int suma(int *p, int *d){
int c=0;
for(int i=0,n=9;i<=9,n>=0;i++,n--){
p=&V[i];
*d=G[n];
c=(*p)+(*d)+c;
}
return c;
}
int multi(int *p, int *d){
int c=1;
for(int i=0,n=9;i<=9,n>=0;i++,n--){
*p=V[i];
*d=G[n];
c=c*(*p)*(*d);
}
return c;
}
main(){
int opc,*p,*d,sum,mult;
int *x=&V[0],*y=&G[10];
MENU:
printf("\t\tSuma o Multiplicacion de Vectores");
printf("\n\nElija Una Opcion:");
printf("\n\n1.- Sumar Todos los Elementos de los Vectores");
printf("\n\n2.- Multiplicar Todos los Elementos de los Vectores");
printf("\n\n3.- Salir");
printf("\n\n\t\t\t\t Opcion: ");
scanf("%d",&opc);
switch(opc){
case 1:{
sum=suma(x,y);
printf("\nLa Suma de los Componentes de los Vectores es: %d\n\n",sum);
system("pause");
system("cls");
goto MENU;
break;
}
case 2:{
mult=multi(x,y);
printf("\nLa Multiplicacion de los Componentes de los Vectores es: %d\n\n",mult);
system("pause");
system("cls");
goto MENU;
break;
}
case 3:
exit(1);
default:{
printf("Opcion no Valida!!!!");
printf("\n\nERROR FATAL.....FORMATEA EL PC!!!! CUECK\n\n");
system("pause");
system("cls");
goto MENU;
}
}
}
pero lo que necesiti es tener una funcion por ejemplo
int func(int *p, int *d, int opc)
y en el main pedir que se escoja la operacion y que desde el main, mediante la opcion me tire a la funcion en la cual debe tener las operaciones....bueno mi duda en si es como invoco la funcion a traves de un numero que infrese el usuario....Bueno esop, si alguien pudiera contestar mi duda estaria muy agradecido!!!1
XD thanks!!!
Valora esta pregunta
0