SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: tazz1987 en Jueves 24 de Julio de 2008, 17:38
-
miren tengo es te codigo en c pero lo que quiero reportar es el numero de palabras que tiene la frase bueno pero mi error es que cuando aplico el ciclo en me suma las palabras que tengo en la primera frase mas la de la segunda frase ejem: tengo la frase"francia vs alemania" aqui me muestra 3 palabras pero en la segunda frase que es "mexico contra brasil" lo que me deveria mostrar es 3 pero lo que hace es que me muestra 6.
es te es mi codigo espero me puedan ayudar:
int main()
{
char pal[40],pal2[40];
int u,n,x,e=0,nc,w=0;
char b=' ';
do
{
printf("nt Ingrese la frase:");
fflush( stdin );
gets(pal);
n=strlen(pal);
for (u=0;u<=n;u++)
{
if (pal==b)
pal2[e]=pal;
{
printf("ntLa frase es:nn");
while(pal!=' ')
{
if(pal!=b)
{
printf("%c",pal);
}
else if(u>0 && (pal==b && pal[u-1]!=b))
{
printf(" ");
w++;
}
u++;
}
if(pal!=b)
w++;
}
}
printf("nnntEl numero de palabras es: %d",w);
printf("nsi desea seguir proporcione un 1nn");
printf("si no desae continuar presione 0 nn");
scanf("%d", &nc);
} while(nc==1);
printf("nnnn");
system("pause");
}
-
debes poner w=0 dentro del ciclo do..while, antes del for, para que cada vez que regrese, ponga el contador de palabras (w) a cero.
-
gracias profesorx agradezco tu ayuda me ayudo mucho espero algun dia poderte ayudar