Foros del Web » Programación para mayores de 30 ;) » Programación General »

problemas pedido cadena dev c++

Estas en el tema de problemas pedido cadena dev c++ en el foro de Programación General en Foros del Web. este programa me da un leve error. al llamar la funcion ,abajo indicada, no pide la cadena para ejecutar los procesos deseados sino q va ...
  #1 (permalink)  
Antiguo 11/09/2004, 22:58
 
Fecha de Ingreso: marzo-2004
Ubicación: Rep. Dominicana
Mensajes: 31
Antigüedad: 20 años, 1 mes
Puntos: 0
problemas pedido cadena dev c++

este programa me da un leve error. al llamar la funcion ,abajo indicada, no pide la cadena para ejecutar los procesos deseados sino q va directamente a los procesos. me pregunto pq pasa esto. si alguien puede determinar el problema por favor me indica donde esta gracias.
#include<stdio.h>
#include<stdlib.h>
int sel,sel2,num,ct,ct2;
char cd[100];

char size(char cd[]) //FUNCIONES CON PROBLEMAS
{
for(ct=0;cd[ct]!='\0';ct++);
printf("Longitud %i\n",ct);
}

char ini(char cd[])//FUNCIONES CON PROBLEMAS
{
if(cd[0]!=' ' && cd[0]!='\0')printf("%c",cd[0]);
for(ct=1;cd[ct]!='\0';ct++)
if(cd[ct]==' ' && cd[ct+1]!='\0')printf("%c",cd[ct+1]);
}

char reves(char cd[])//FUNCIONES CON PROBLEMAS
{
for(ct=0;cd[ct]!='\0';ct++);
for(ct=ct-1;ct>=0;ct--)
printf("%c",cd[ct]);
}

main()
{

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);
printf("\n\nDigite la cadena: ");
getc(cd); //AQUI ESTA EL VERDADERO PROBLEMA. NO ME PIDE LA CADENA
if(sel2==1)size(cd);
if(sel2==2)ini(cd);
if(sel2==3)reves(cd);
if(sel2==5)sel=5;

printf("\nFin del programa...\n");
system("pause");
}

Última edición por powers; 13/09/2004 a las 20:20
  #2 (permalink)  
Antiguo 12/09/2004, 10:27
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 5 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
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 17:03.