Dev - C++ - Problema con programa en C (no C++)

 
Vista:

Problema con programa en C (no C++)

Publicado por Rafa (4 intervenciones) el 03/12/2005 19:35:09
Hola tengo un problema con el siguiente programa que intenta resolver si un numero almacenado previamente en una variable es capicua o no. Os dejo el codigo porque yo no consigo ver el fallo. Gracias por adelantado.

CODIGO FUENTE:

//Autor: Rafael Enriquez Herrador
//Asignatura: Metodologia y Tecnologia de la Programacion
//Titulo: Practica 2, Ejercicio4
//Fecha: 1-12-2005
//Version: 0.1

/* Programa que determine si un numero es capicua o no */

#include <stdio.h>
#include <stdlib.h>

/* La manera mas rapida y sencilla a mi parecer es almacenar el numero, digito a digito, en
un array (vector) para poder comparar los digitos mas facilmente y determinar si el numero es capicua */

//Funcion main()

int main()
{

//Declaracion de variables

int num[100]; //La longitud del vector es suficiente, no creo que encontremos numeros
//de mas de 100 digitos

long int n, n_temp;
int aux1, aux2, i;

i = 0;
aux1 = 0;

//Introduccion de datos

printf("Introduzca el numero a analizar si es capicua o no: ");
scanf("%i", &n);
printf("\n");

n_temp = n;

//Copiamos el numero digito a digito dentro del vector con un contador que nos diga la longitud
//del numero (cuantos digitos posee)

do
{
num[aux1] = n_temp%10; //El numero se copia en un vector al reves de como es,
n_temp = n_temp/10; //pero eso no influye para estudiar si es capicua,
aux1++; //y la variable i nos da la ultima posicion que se ha llenado en el array.
i++;
}
while (n_temp != 0); //Con el do..while nos aseguramos de que se copien los numeros con un solo digito

//num[aux1] = n_temp; //Debemos copiar el ultimo digito fuera del bucle porque la condicion
//de finalizacion no lo permite

//Vamos a escribir el vector por pantalla

aux1 = 0;

while (aux1 != i)
{
printf("%i ", num[aux1]);
aux1++;
}

printf("\n\n");

//Comparamos los digitos en el vector para ver si coinciden los extremos y probar que n es capicua

aux1 = 0;
aux2 = i-1;

while ((aux1 != aux2) || ((aux1+1) != (aux2)))
{
if (num[aux1] != num[aux2]) //Si hay dos digitos simetricos distintos el numero no es capicua
{
printf("El numero %i NO ES capicua\n\n", n);
return 0; //Se termina la ejecucion
}
else //Seguimos ejecutando el bucle hasta comparar el vector entero
{
printf("%i = %i\n", aux1, aux2);
aux1++;
aux2--;
}
}

//Si hemos salido del bucle significa que el numero es capicua

//Salida del resultado

printf("El numero %i ES capicua\n\n", n);

return 0;

}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con programa en C (no C++)

Publicado por JESUS PEREZ ESQUIVEL (1 intervención) el 24/08/2006 00:18:10
esta mal el programa, no tengo mas ke decir
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con programa en C (no C++)

Publicado por luis (1 intervención) el 17/07/2009 00:17:15
necesito correr un-programa en c q me diga si un numero es capicúa o no pero utilizando pilas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

aca te paso el codigo arreglado y funcionando

Publicado por alon (1 intervención) el 15/02/2007 23:47:16
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main()
{
int num[100];
long int n, n_temp;
int aux1, aux2, i;

i = 0;
aux1 = 0;

printf("Introduzca el numero a analizar si es capicua o no: ");
scanf("%i", &n);
printf("\n");

n_temp = n;

do
{
num[aux1] = n_temp%10;
n_temp = n_temp/10;
aux1++;
i++;
}
while (n_temp != 0);

aux1 = 0;
while (aux1 != i) {
printf("%i ", num[aux1]);
aux1++; }
getch();
printf("\n\n");

aux1 = 0;
aux2 = i-1; /*2*/

while ((aux1 != aux2))
{
if (num[aux1] != num[aux2])
{
printf("El numero %i NO ES capicua\n\n", n);
getch();
return 0;
}
else
{
printf("%i = %i\n", aux1, aux2);
aux1++;
aux2--;
getch();
}
}

printf("El numero %i ES capicua\n\n", n);
getch();
return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

aca te paso el codigo arreglado y funcionando

Publicado por Melymar Bracho (1 intervención) el 23/03/2011 20:55:33
necesito resolver como calcular una capicua pero en C++ y como se puede resolver sin un while
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

consulta

Publicado por juan (2 intervenciones) el 20/10/2009 05:16:38
amigo se puede aser sin tener q suar la biblioteca conio.h y en el caso de no ser numero capicua realizar la operacion para obtner asta encontrar q numero si lo es... me explico si tengo u numero com el

195
591 // al darlo buelta
786 // daria la suma
687 // al volve a invertir
1473 // la suma
3741 // al invertir
5214 // al sumar
4125 // al invertir
9339 // al sumar, este numero si es copicua

bno mi cosulta es porq necesito algo asi para una tarea q me diga usted para optener un numero cipicua devia realisa ,, 4 sumas y su numero copicua es el 9339

la entrada standar es atraves d un txt

ej
3 // cantidad de numeros a ingresar
195 nª1
265 nª2
750 nª3

y la salida seria algo asi como

4 9339 // el 4 numeros d sumas y el 9339 numero copicua
5 45245
3 6666
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con programa en C (no C++)

Publicado por JUAN ALBERTO MOLLEJA (1 intervención) el 17/09/2007 17:46:44
HOLA CHABAL ESTUDIA MAS, ELLO LO PODES HACER EN ESTA PAGINA.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con programa en C (no C++)

Publicado por juan (2 intervenciones) el 20/10/2009 04:59:30
amigo cual es la forma de entrada d t programa q cada numero q ingreso me dice q no es copicua
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con programa en C (no C++)

Publicado por GALLITO (1 intervención) el 13/12/2009 20:40:50
NO CORRE TU PROGRAMA EN TURBO C++
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar