Lo he probado y no funciona asique voy a poner el programa entero para que lo podais ver y corregir. Que conste que el programa no esta terminado. El problema surge en la compilacion en la funcion eleccion1. Debe ir estructurado en la funciones que estan (cada funcion tiene que ser una funcion):
Código PHP:
#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;
int Num, Num2, Num3, Multi, Multi2, Multi3, Factorial=1 ,Factorial2=1 , Factorial3=1 , times, X, Y, Z, sol, sol2;
void variacionord (int Num, int X, int Factorial, int Multi) /*Permutaciones ordinarias*/
{
printf("Introduce el numero de elementos: ");
scanf("%d",&Num);
while (X!=1)
{
X = Num--;
Multi = Num * X;
Factorial = Factorial *X;
X = X--;
}
printf("\n%d", Factorial);
}
void variacionrep( int Num, int X, int Factorial, int Multi, int Num2, int Y, int Factorial2, int Multi2, int Num3, int Z, int Factorial3, int Multi3, int sol) /*Permutaciones con repeticion*/
{
printf(")Introduce el numero de elementos: ");
scanf("%d",&Num);
printf("¿Cuántos elementos se repiten?");
scanf("%d",&Num2);
printf("Cuántas veces se repite?");
scanf("%d",&Num3);
while(X!=1)
{
X = Num--;
Multi = Num * X;
Factorial = Factorial *X;
X = X--;
}
while (Y!=1)
{
Y = Num2--;
Multi2 = Num2 * Y;
Factorial2 = Factorial2 * Y;
Y = Y--;
}
while (Z!=1)
{
Z = Num3--;
Multi3 = Num3 * Z;
Factorial3 = Factorial3 * Z;
Z = Z--;
}
sol = Factorial/(Factorial2 * Factorial3);
printf("\n %d", sol);
}
void combinaciones ( int Num, int X, int Factorial, int Multi, int Num2, int Y, int Factorial2, int Multi2, int Num3, int Z, int Factorial3, int Multi3, int sol, int sol2)/*Combinaciones*/
{
cout<<"Introduce el numero de elementos: ";
cin>>Num;
cout<<"Introduce el numero de elementos por cada agrupacion: ";
cin>>Num2;
while(X!=1)
{
X = Num--;
Multi = Num * X;
Factorial = Factorial *X;
X = X--;
}
Num3 = Num - Num2;
while (Y!=1)
{
Y = Num3--;
Multi3 = Num3 * Y;
Factorial3 = Factorial3 * Y;
Y = Y--;
}
sol2 = (Factorial/Factorial3);
while (Z!=1)
{
Z = Num2--;
Multi2 = Num2 * Z;
Factorial2 = Factorial2 *Z;
Z = Z--;
}
sol = (sol2/Factorial2);
cout<<sol;
}
void variacionord( int Num, int X, int Factorial, int Multi, int Num2, int Num3, int Y, int Factorial3, int Multi3, int sol)/*Variaciones*/
{
cout<<"Introduce el numero de elemento: ";
cin>>Num;
cout<<"Introduce el numero de elementos de cada agrupacion:";
cin>>Num2;
while(X!=1)
{
X = Num--;
Multi = Num * X;
Factorial = Factorial *X;
X = X--;
}
Num3 = Num - Num2;
while (Y!=1)
{
Y = Num3--;
Multi3 = Num3 * Y;
Factorial3 = Factorial3 * Y;
Y = Y--;
}
sol = (Factorial/Factorial3);
cout<<sol;
}
void variacionrep() /*Variaciones con repetición*/
{
double a =0.0;
double b = 0.0;
cout<<"Introduce el numero de elementos: ";
cin>>a;
cout<<"introduce el numero de elementos que interviene: ";
cin>>b;
cout<< pow(a,b) << endl;
}
int eleccion1(void permutacionord(int),void variacionrep (int),void combinaciones (int),void variacionord(int),void variacionrep(void))
{
int n=0;
printf("****************************************");
printf("** Elige uno de los tipos: **");
printf("** 1.Permutacion ordinaria **");
printf("** 2.Permutaciones con repeticion **");
printf("** 3.Combinaciones **");
printf("** 4.Variacion ordinaria **");
printf("** 5.Variacion con repeticion **");
printf("****************************************");
scanf("%f",&n);
switch(n)
{
case 1: /*Permutaciones ordinarias*/
void permutacionord( Num, X, Factorial, Multi);
break;
case 2: /*Permutaciones con repeticion*/
void variacionrep( Num, X, Factorial, Multi, Num2, Y, Factorial2, Multi2, Num3, Z, Factorial3, Multi3, sol);
break;
case 3: /*Combinaciones*/
void combinaciones ( Num, X, Factorial, Multi, Num2, Y, Factorial2, Multi2, Num3, Z, Factorial3, Multi3, sol, sol2);
break;
case 4:/*Variaciones*/
void variacionord( Num, X, Factorial, Multi, Num2, Num3, Y, Factorial3, Multi3, sol);
break;
case 5: /*Variaciones con repetición*/
void variacionrep();
break;
default:
return eleccion1();
break;
}
system("pause");
}
main()
{
char sn;
printf("Sabes los tipos de combinatoria:('S=1'/'N=2')");
scanf("%f",&sn);
if (sn == 1)
{
int eleccion1(permutacionord, variacionrep, combinaciones, variacionord, variacionrep);
}
if (sn == 2)
{
int eleccion1(permutacionord, variacionrep, combinaciones, variacionord, variacionrep);
return 0;
}
return EXIT_SUCCESS;
}
Admito quejas, insultos( sin pasarse) , correcciones, sugerencias etc...
Un saludo.