![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
12/09/2004, 10:27
|
![Avatar de Instru](http://static.forosdelweb.com/customavatars/avatar26845_2.gif) | | | Fecha de Ingreso: noviembre-2002 Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años, 3 meses Puntos: 52 | |
Creo que se donde esta tu problema.
Tu codigo esta desordenado en cuanto a funciones. Intenta poner las declaraciones de las funciones antes del main y las definiciones despues del main.
Algo asi:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int sel,sel2,num,ct,ct2;
char cd[100];
int primo(void);
int fact(void);
int fibo(void);
char size(void);
main()
{
while(sel!=5)
{
printf("*** MENU PRINCIPAL ***\n\n");
printf("1. Programas Matematicos.\n");
printf("2. Manejo de Caracteres.\n");
printf("3. Arreglos y Matrices.\n");
printf("4. Conversion de Cantidades numericas en Letras.\n");
printf("5. Salir.\n");
printf("\nSu seleccion: ");
scanf("%i",&sel);
switch(sel)
{
case 1: printf("\nPROGRAMAS MATEMATICOS\n\n");
printf("1. Analisis Numerico\n");
printf(" 11. Numeros Primos.\n");
printf(" 12. Factorial de un numero.\n");
printf("2. Serie de Numero\n");
printf(" 21. Fibonacci.\n");
printf(" 22. Primos Gemelos.\n");
printf("3. Triangulo de Pascal\n");
printf("4. Salir\n");
printf("\nSu seleccion: ");
scanf("%i",&sel2);
if(sel2==11)primo();
if(sel2==12)fact();
if(sel2==21)fibo();
if(sel2==4)sel=5;
break;
case 2: printf("\nMANEJO DE CARACTERES\n\n");
printf("1. Longitud de una Cadena\n");
printf("2. Calculo de Iniciales\n");
printf("3. Invertir una Cadena\n");
printf("4. Busqueda de Palabras\n");
printf("5. Salir\n");
printf("\nSu seleccion: ");
scanf("%i",&sel2);
if(sel2==1)size(); //llamada a la fucion con problemas
if(sel2==5)sel=5;
break;
case 3: printf("\nARREGLOS Y MATRICES\n\n");
printf("1. Suma de Matrices.\n");
printf("2. Multiplicacion de Matrices.\n");
printf("3. Inventario de productos.\n");
printf("4. Salir\n");
printf("\nSu seleccion: ");
scanf("%i",&sel2);
if(sel2==4)sel=5;
break;
case 4: printf("\nCONVERSION DE CANTIDADES NUMERICAS EN LETRAS\n\n");
printf("1. Numeros a Letras\n");
printf("2. Salir\n");
printf("\nSu seleccion: ");
scanf("%i",&sel2);
if(sel2==2)sel=5;
break;
}
}
printf("\nFin del programa...\n");
system("pause");
}
int primo(void)
{
printf("Numero Primo\n");
printf("Digite el numero: ");
scanf("%d",&num);
if(num==1)printf("1 es primo\n");
else
{
for(ct2=2;num%ct2!=0;ct2++) ;
if(ct2==num)printf("%d es primo\n",num);
else printf("%d no es primo\n",num);
}
}
int fact(void)
{
int ft=1;
printf("Factorial\n");
printf("Digite el numero: ");
scanf("%i",&num);
if(num==0||num==1)printf("Factorial de %i es 1\n",num);
else
{
for(ct=1;ct<=num;ct++)ft=ft*ct;
printf("Factorial de %i es: %li\n",num,ft);
}
}
int fibo(void)
{
int fib,xf=1,xi=0,lim;
printf("Fibonacci\n");
printf("Digite el limite:");
scanf("%i",&lim);
for(ct=1;ct<=lim;ct++)
{
printf("%i ",xf);
fib=xf;
xf+=xi;
xi=fib;
}
printf("\n");
}
char size(void)
{
printf("\nDigite la cadena: ");
gets(cd); // problema aqui (no pide la cadena)
for(ct=0;cd[ct]!='\0';ct++);
printf("Longitud %i\n",ct);
}
Tambien checa bien lo que realmente gets cd porque creo que asi no se utiliza.
saludos |