Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Dónde esta el error?

Estas en el tema de Dónde esta el error? en el foro de C/C++ en Foros del Web. Buenas a todos, Soy nuevo en el foro y nuevo en C. Tan solo una pregunta: int main() { int numero[3]; for (int i=1; i<=4; ...
  #1 (permalink)  
Antiguo 08/08/2012, 09:25
 
Fecha de Ingreso: agosto-2012
Mensajes: 7
Antigüedad: 12 años, 3 meses
Puntos: 0
Dónde esta el error?

Buenas a todos,

Soy nuevo en el foro y nuevo en C. Tan solo una pregunta:

int main()
{

int numero[3];

for (int i=1; i<=4; i++){
cout << "Introduce el digito " << i << " del numero de 4 digitos: ";
cin >> numero[i];
}


cout << numero;
return 0;
}


Tras este código, me sale por pantalla al imprimir la variable "numero" un 0x28ff30, cuando lo que espero es los 4 números enteros que he introducido previamente. Sí, ya se que es una auténtica gilipoyez, pero bueno, ya dije que estaba empezando jejeje.

Saludos.
  #2 (permalink)  
Antiguo 08/08/2012, 09:30
Avatar de cronopiomx  
Fecha de Ingreso: mayo-2012
Ubicación: Programing Cloud
Mensajes: 282
Antigüedad: 12 años, 6 meses
Puntos: 28
Respuesta: Dónde esta el error?

amigo, el problema es que tu variable ´numero´ es 1 arreglo de 3 posiciones, en cada posicion de el tendra cada digito, para poder mostrar esa variable ´numero´ necesitas hacerlo con una estructura repetitiva ´for´, al hacerlo asi solo imprimes posicion de memoria , prueba esto...

s2
cronos

for (int i=1; i<=4; i++)
cout << numero[i];
  #3 (permalink)  
Antiguo 08/08/2012, 09:55
 
Fecha de Ingreso: julio-2012
Mensajes: 133
Antigüedad: 12 años, 4 meses
Puntos: 22
Respuesta: Dónde esta el error?

Hola juandmd86.

Otro problema que se te va a presentar es por la declaración del arreglo

Código C++:
Ver original
  1. int numero[3];

En C/C++ los arreglos comienzan en la posición 0, entonces de este modo:
Código C++:
Ver original
  1. for(int i= 1; i <= 4; i++) {
  2.     ...
  3.     cin >> numero[i];
  4.   }
Dejas inderterminada la primera posición del arreglo y también estas escribiendo mas allá de su límite (3) ya que la variable i alcanza el valor 4.

Debería ser:
Código C++:
Ver original
  1. ...
  2. int numero[4];
  3.  
  4.  for (int i = 0; i < 4; i++){
  5.     cout << "Introduce el digito " << i + 1 << " del numero de 4 digitos: ";
  6.     cin >> numero[i];
  7.   }
  8. ...

Saludos.
  #4 (permalink)  
Antiguo 08/08/2012, 10:10
 
Fecha de Ingreso: agosto-2012
Mensajes: 7
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Dónde esta el error?

Muchas gracias por la rapidez y la explicación señores!!
  #5 (permalink)  
Antiguo 08/08/2012, 10:18
 
Fecha de Ingreso: agosto-2012
Mensajes: 7
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Dónde esta el error?

Otra duda que tengo es la siguiente:

Establecer en una variable del tipo "int" un determinado numero de dígitos. Es decir, si a la hora de introducirlos por el teclado sobrepaso, por ejemplo, los 6 dígitos establecidos, me gustaría que saliera un error. Y si está correctamente, que siga adelante el programa. Es posible hacer eso??

Saludos y gracias por adelantado.
  #6 (permalink)  
Antiguo 08/08/2012, 10:22
 
Fecha de Ingreso: agosto-2012
Mensajes: 7
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Dónde esta el error?

Vale, ya lo hice... un saludo!
  #7 (permalink)  
Antiguo 08/08/2012, 19:12
Avatar de cronopiomx  
Fecha de Ingreso: mayo-2012
Ubicación: Programing Cloud
Mensajes: 282
Antigüedad: 12 años, 6 meses
Puntos: 28
Respuesta: Dónde esta el error?

seguro convertiste el int a string o a 1 arreglo de char, mmm, tambien puede hacerlo sin necesidad de hacer eso, usa esta formula matematica, agrega '#include <math.h>' para que puedas utilizar el logaritmo, claro el numero>0, pues el logaritmo se indefine para valores menores o iguales a 0, veras como funciona prueba...

(int)log(numero)/2;

s2
cronos
  #8 (permalink)  
Antiguo 15/08/2012, 08:09
 
Fecha de Ingreso: agosto-2012
Mensajes: 7
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Dónde esta el error?

Buenas tardes a todos,

Estoy intentando hacer una función que me calcule la hipotenusa de un triangulo rectángulo y ya no se por dónde seguir...un saludo y muchas gracias!!


#include <iostream>
#include <cmath>
#include <cstdlib>
using namespace std;

float TrianguloRectangulo (float);
int main()
{
float lado1, lado2, hipotenusa, mihipotenusa;
cout << "Dame un lado: ";
cin >> lado1;
cout << "Dame otro lado: ";
cin >> lado2;
hipotenusa=pow(lado1,2)+pow(lado2,2);

TrianguloRectangulo(hipotenusa);
return 0;
}
float TrianguloRectangulo (float mihipotenusa){
float mihipotenusa;
mihipotenusa=sqrt(hipotenusa);

}
  #9 (permalink)  
Antiguo 15/08/2012, 08:12
 
Fecha de Ingreso: agosto-2012
Mensajes: 7
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Dónde esta el error?

La función la crearía con dos argumentos pero creo que es imposible, de ahí que calcule previamente la hipotenusa para más tarde, en la función, aplicarle la raiz cuadrada.

Por que una función solo acepta un argumento no? o pueden ser más de dos???????
  #10 (permalink)  
Antiguo 15/08/2012, 08:37
 
Fecha de Ingreso: agosto-2012
Mensajes: 7
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Dónde esta el error?

jajaja lo solucioné ya... un saludo a todos!!!

Etiquetas: int, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:58.