Ver Mensaje Individual
  #6 (permalink)  
Antiguo 18/01/2008, 14:18
athiria
 
Fecha de Ingreso: enero-2008
Mensajes: 22
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: ¿Porque falla este programa?

Este programa me está volviendo loco!

Bueno, con la nueva solucion todo parecia ir perfectamente....le implante tambien lo de ver si era palindromo, pero ahora me da un error que parece casi una burla:

En las ultimas lineas del programa que posteo a continuacion, aparece esta linea:
printf("%s Prueba\n",sucia);

Si se deja como está, el programa parece salir bien y se imprime la frase "Es un palindromo"

Sin embargo, si se elimina este printf, sale la frase "No es un palindromo"

Supuestamente printf no afecta a la ejecución del programa, no?

[Compilado con Xcode 3.0]

Este es el estado actual del programa:

Código:
#include <stdio.h>
#include <string.h>
#include <ctype.h>


char *quitar_blancos(char *cad1);
int main()
{
	int i,j,cont;
	char *cad1="AvEeVa"; 
	
	
	cad1=quitar_blancos(cad1);
	
	
	for (j=0;cad1[j]!='\0';j++)
	{
		cad1[j] = toupper(cad1[j]);
	}
	
	
	if (j%2==0)
	{
		cont=j/2;
	}
	else
	{
		cont=j/2+1;
	}
	
	i=0;
	while (i<cont && cad1[i]==cad1[(j-1)-i])
	{
		i++;
	}
	
	if (cad1[i]==cad1[(j-i)-1])
	{
		printf("Es palindromo\n");
	}
	else
	{
		printf("No es palindromo\n");
	}
	
	
	return 0;
}
// FUNCION
char *quitar_blancos(char *cad1)
{
	
	char *sucia; //nueva cadena para almacenar la frase sin espacios
	int i=0,j=0;
	
	while (cad1[i]!='\0')
	{
		if (cad1[i]!=' ')
		{
			
			sucia[j]=cad1[i];
			j++;
			
		}
		i++;
	}
	sucia[j]='\0';
	printf("%s\n",sucia);
	// Si se quita el printf, sale la opcion final de que no es palindromo. Con el printf, sale que es palindromo.
	return sucia;
}

Última edición por athiria; 19/01/2008 a las 14:46