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

Vector unidimensional

Estas en el tema de Vector unidimensional en el foro de C/C++ en Foros del Web. Hola chicos, Porfavor si me podeis dar ideas sobre como resolver el siguiente ejercicio se los agradeceria mucho. /*4. Asignar a cada uno de los ...
  #1 (permalink)  
Antiguo 27/03/2010, 16:22
 
Fecha de Ingreso: marzo-2010
Mensajes: 127
Antigüedad: 14 años, 1 mes
Puntos: 2
Vector unidimensional

Hola chicos,

Porfavor si me podeis dar ideas sobre como resolver el siguiente ejercicio se los agradeceria mucho.

/*4. Asignar a cada uno de los diez elementos de un vector numérico entero
el doble del elemento anterior,
sabiendo que el primer elemento es el valor 1. El vector debe visualizarse. */
Código C:
Ver original
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. void main(){
  5.  
  6. int i=0,vect[10],aux;
  7.  
  8.  vect[i]=1;
  9.  for(i=1;i<10;i++){
  10.  
  11.  vect[i]=vect[i] * 2;
  12.  
  13.  
  14.  }
  15.  
  16. for(i=0;i<10;i++){
  17. printf("los valores para el vector %i son %i\n",i,vect[i]);
  18. }
  19.  
  20. }



Me compila pero los elementos del vector no son correctos el primero si me lo pone como 1 pero los demas me pone numeros raros..
  #2 (permalink)  
Antiguo 27/03/2010, 23:07
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Vector unidimensional

Te falta la instruccion que calcula el doble del ANTERIOR.
  #3 (permalink)  
Antiguo 28/03/2010, 07:50
 
Fecha de Ingreso: marzo-2010
Mensajes: 127
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: Vector unidimensional

Hola,pues revisando el codigoo logre que me ejecutara lo ke me piden en el enunciado... pero me da un error al ejecutarlo.. y no se porque puede ser claro que luego en la ventanita me muestra bien el vector..
el compilador es el turbo C.

el codigo es el siguiente: (si veis algo mal) por favor decirmelo ..gracias
Código C:
Ver original
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. void main(){
  5.  
  6. int i=0,vect[10];
  7.  
  8.   vect[i]=1;
  9.  for(i=0;i<10;i++){
  10.  
  11. vect[i+1]=vect[i]*2;
  12.  
  13.  }
  14.  
  15. for(i=0;i<10;i++){
  16. printf("los valores para el vector %i son %i\n",i,vect[i]);
  17. }
  18.  
  19. }
  #4 (permalink)  
Antiguo 28/03/2010, 16:25
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: Vector unidimensional

Estas usando un indice fuera de la memoria del arreglo.
  #5 (permalink)  
Antiguo 29/03/2010, 07:30
 
Fecha de Ingreso: marzo-2010
Mensajes: 127
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: Vector unidimensional

Hola a todos,
lo consegui =) gracias chicos.

el codigo correcto seria el siguiente:
Código C:
Ver original
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3.  
  4. void main(){
  5.  
  6. int i=0,vect[10];
  7.  
  8.   vect[i]=1;
  9.  for(i=1;i<10;i++){
  10.  
  11. vect[i]=vect[i-1]*2;
  12.  
  13.  }
  14.  
  15. for(i=0;i<10;i++){
  16. printf("los valores para el vector %i son %i\n",i,vect[i]);
  17. }
  18.  
  19. }
  #6 (permalink)  
Antiguo 29/03/2010, 12:16
Avatar de sadalsuud  
Fecha de Ingreso: marzo-2010
Ubicación: en la casa del duende
Mensajes: 96
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Vector unidimensional

Yo recomendaría que la funcion main fuera int y no void, es buena practica de proramacion en c++ que el main retorne 0

int main(){
....
.....
....
return 0;
}

un saludo
ciao
  #7 (permalink)  
Antiguo 29/03/2010, 13:29
 
Fecha de Ingreso: marzo-2010
Mensajes: 127
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: Vector unidimensional

yo estoy trabajando en aprender C en poco mas de un mes tengo un examen y voy atrasadisima... lo de int main() lo dices porque el vector es de enteros solo? me lo podrias explicar un pokito please?,porque por esa logica si en mi main trabajo con float mi main seria float main().. y en caso de los char?

a lo mejor son dudas tontas pero estoy estudiando C por mi cuenta sin profe y voy a contra reloj..
  #8 (permalink)  
Antiguo 29/03/2010, 14:13
Avatar de sadalsuud  
Fecha de Ingreso: marzo-2010
Ubicación: en la casa del duende
Mensajes: 96
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Vector unidimensional

Cita:
Iniciado por roser24 Ver Mensaje
yo estoy trabajando en aprender C en poco mas de un mes tengo un examen y voy atrasadisima... lo de int main() lo dices porque el vector es de enteros solo? me lo podrias explicar un pokito please?,porque por esa logica si en mi main trabajo con float mi main seria float main().. y en caso de los char?

a lo mejor son dudas tontas pero estoy estudiando C por mi cuenta sin profe y voy a contra reloj..
No son preguntas tontas ;)

main puede ser ser viod como lo tienes en tu codigo o int y retornar 0
El hecho de ser int main() es independiente de contenido de la función, y es int porque si algo anomalo ocurre en la ejecucion del programa entonces el sistema operativo tiene una respuesa de un valor entero para saber que hacer con el programa si es void el SO tiene menos pistas sobre el estado del programa que se está ejecutando, ves? si no pasa nada raro durante la ejecucion del programa, retorna 0 que es lo que se coloca al final.

Es una buena practica de porgramacion colocar como te he dicho, la declaracion de min

ciao

Última edición por sadalsuud; 29/03/2010 a las 14:47
  #9 (permalink)  
Antiguo 29/03/2010, 14:22
 
Fecha de Ingreso: marzo-2010
Mensajes: 127
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: Vector unidimensional

hola,sadalsuud gracias por la aclaracion
de ahora en adelante declarare mi funcion principal como int main(),thanks
  #10 (permalink)  
Antiguo 30/03/2010, 16:38
 
Fecha de Ingreso: marzo-2010
Mensajes: 34
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Vector unidimensional

eso te iba a decir lo del void no lo hagas mas y tambien te recomiendo al final colocar, return 0;

Etiquetas: vectores
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 15:22.