[C con Clase] por que no funciona bien mi pregrama?

Diego diegogeid en gmail.com
Mar Abr 30 22:13:57 CEST 2013


Hola.

Un detalle:


El 19 de abril de 2013 02:39, victor <the.lonesome en gmail.com> escribió:

> Tu programa "corregido" es:
>
> #include <iostream>
> #include <stdlib.h>
>
> using namespace std;
>
> char pal[65],n;
> char *p,l;
>
>
> int busqueda(int a, char *b,char c) {
>         while( (a < 65) && (*b != c)) {
>                 a++;
>                 b++;
>         }
>
>         cout << "Se encontro en: " << a << endl;
>         return a;
> }
>
> int main() {
>         int pos;
>         cout<<"escribe una frase"<<endl;
>         cin>>pal;
>         n=0;
>         p=pal;
>         cout<<"escribe un caracter para buscarlo"<<endl;
>         cin>>l;
>
>         pos = busqueda (n,p,l);
>
>         if(n>65) {
>
La función nunca retornará un número mayor a 65, en todo caso, igual, que
es el número a partir del cual búsqueda deja de incrementar los índices
para que detecte que no esta en la frase, por eso, esa línea debería quedar:

if(n==65) {

o en su defecto, aunque dependiendo del caso sería mejor:

if(n>64) {

                 cout<<"no existe ese caracter" << endl;
>         } else {
>                 cout<<"el caracter es: "<<l<<" y esta ubicado en la
> pocicion: "<< pos <<endl;
>         }
>
>         system ("pause");
> return 0;
>
> }
>
> Como recomendación (y perdón por las mayúsculas), pero DEJA DE USAR
> CONIO.H no sé por qué mucha gente sigue colocando esa cabecera, cuando en
> el peor de los casos ni la usan (como fue tu caso). Ahora, originalmente "n
> = 0" (que es la posición desde donde empieza a buscar tu función "busqueda"
> y al mismo tiempo tú pretendías colocarla como el resultado final (siendo
> que "n" vale 0 en todo el programa. Para solucionar tu problema,
> simplemente devuelve "a" en la función búsqueda, que es la variable que va
> aumentando su valor conforme se recorre la cadena.
>
> Saludos.
>
>
> El 19/04/2013, a las 00:12, fanatidark escribió:
>
> > ya corregi lo que mencionaste queda asi no???
> >
> > #include <iostream>
> > #include <stdlib.h>
> > #include <stdio.h>
> > #include <conio.h>
> >
> > using namespace std;
> >
> > char pal[65],n;
> > char *p,l;
> > int busqueda(int a, char *b,char c)
> > {
> >       while((a<65)&&(*b!=c))
> >       {a++;
> >       b++;
> >       }
> > }
> >
> > int main()
> > {
> > cout<<"escribe una frase"<<endl;
> > cin>>pal;
> > n=0;
> > p=pal;
> > cout<<"escribe un caracter para buscarlo"<<endl;
> > cin>>l;
> > busqueda (n,p,l);
> > if(n>65)
> > {cout<<"no existe ese caracter"<<endl;}
> > else
> > {cout<<"el caracter es: "<<l<<" y esta ubicado en la pocicion: "<< n
> <<endl;
> > }
> > system ("pause");
> > return 0;
> >
> > }
> >
> >
> >
> > y no es lo mismo usar variables globales a locales???
> > y sigue sin funcionar por q??? alguna idea???
> > cuando ejecuto el programa me aparece siempre q letra escribi y q esta
> en la pocicion y ya eso es todo no me dice ni la pocicion y si no esta ese
> caracter tambien me dice lo mismo en vez de decirme q no esta porq???
> > _______________________________________________
> > Lista de correo Cconclase Cconclase en listas.conclase.net
> >
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> > Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>

Saludos.
Diego
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20130430/f9b7c1b4/attachment.html>


Más información sobre la lista de distribución Cconclase