problema con un ejercicio

Iniciado por espdante, 18 Agosto 2012, 23:54 PM

0 Miembros y 2 Visitantes están viendo este tema.

avesudra

Podrias haberlo puesto desde el principio , que no te daba los errores el compilador que has buscado en google etc etc porque adivino no soy , no soy alguien a quien le guste discutir y menos por tonterias así que si tu quieres queda todo olvidado. Y sí estoy en un foro y respondo porque no me gusta que la gente que empieza se estanque como yo (no quiere decir que me considere un listillo), pero además de que en ese momento me cogiste ya cabreado  hay mucha gente como tú pero que no busca , por eso lo de no buscar etc... Pero bueno sí comprendo que me haya pasado y que te hayas ofendido siendo las tantas de la noche harto de trabajar y que te diga esto.Mis disculpas y por mi queda todo olvidado.
Regístrate en

espdante

#11
ok np yo tampoco tuve ayer mi mejor dia.
rir3760 ese programa... como que lo veo demasiado... facil, si yo el problema lo tengo con las funciones, que las veo un estorbo que no valen para nada y solamente ordenan el codigo a cambio de comerte el coco mas aun.
volviendo al tema... si pongo comillas el programa me marca error. y si quito el [10] tambien me marca error.

La cosa es que no tengo ni idea de por qué al ejecutar el progama me realiza bien el main hasta que llamo a la funcion. Una vez que llamo a la funcion la consola no hace nada, se queda quieta xd y no me marca ningun error.

Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;

bool aumento (char numero[10]) /*Si quito este 10 me da error en la llamada a la funcion en el main*/
{
int i;
cout<<endl;
for (i=0; i<9; i++)
{
cout<<numero[i];
}
for(i=0; i<9; i++)
{
do
{
for (int x=9; x == 0; x++)
{
if (numero [x] == 9)
{
numero [x] == 0;
numero [x-1] == numero[x-1] + 1;
}
else
{
numero [x] == numero[x] + 1;
}
}
}
while (numero [i] == 9);
}
return numero;
}

int main()
{
int i;
char numero[10];
cout<<"Introducir el numero cifra a cifra empezando por la izquierda:"<<endl;
for (i=0; i<9; i++)
{
cout<<"Cifra numero "<<i+1 <<":";
cin>>numero[i];
}
cout<<"La cifra es: ";
for (i=0; i<9; i++)
{
cout<<numero[i];
}
//hasta aqui lo hace bien, el resto no.
aumento(numero);
cout<<endl;
for (i=0; i<9; i++)
{
cout<<numero[i];
}
}

avesudra

#12
Ahora mismo de sintaxis el código anda un poco chungo, y lo que está mal es el algoritmo dentro de la función , si no hace nada ni reacciona es que normalmente se crea un bucle infinito y si el programa termina del tirón y no da el resultado esperado es que está mal.Y como es al llamar a la función pues ese problema está en la función.Otra cosa el operador == que te dije es para comparar y el = para asignar no todos para lo mismo.Vamos ejecutando linea a linea , supongamos que hemos metido el 123456789.
Primera línea: Declaramos i
Segunda línea: Ponemos i en 0 y Mientras que i sea menor que nueve haz lo que esté entre llaves y aumenta i.
{
  Cuarta línea: Despliega los carácteres uno por uno. También puedes hacerlo así eh cout<<numero;
}
Sexta línea: Ponemos i en 0 y Mientras que i sea menor que nueve haz lo que esté entre llaves y aumenta i.
{
 Octava línea: hacer mientras numero en [i] sea igual que nueve en decimal no en carácter estás comprobando un número!!!.
{
  Décima linea: x es igual que 9 , mientras que equis sea igual que 0 o sea nunca haz lo que esté entre llaves y aumenta i , esto  no se ejecuta nunca.
}
}

Hasta aquí creo que puedes comprender que sale de todos los bucles sin ejecutar nada.
Para lo que te digo de comparar los carácteres y eso te lo explico mejor por aquí:
El 9 en carácter no es el 9 en número
El 9 en carácter equivale a 57 en número.
Esto te ayudará a entenderlo mejor:
Regístrate en