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

victor the.lonesome en gmail.com
Vie Abr 19 07:39:27 CEST 2013


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) {
		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





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