¿Cómo hago esto , por qué siempre se me sobrescribe una variable mas del arreglo?
Primero de todo, ¿tiene 48 elementos no?
/*
Escribir un programa que complete un arreglo con los números pares que se encuentren entre 100 y 200 y los muestre en pantalla en orden descendente.
*/
#include <stdio.h>
int main (void){
int a[48];
int i,j;
i=j=0;
for (i=51; i<100; i++){
a[j]=i*2;
j++;
}
//Muestro
for (j=j-1; j>=0; j--)printf("%d\n",a[j]);
return 0;
}
se te sobreescribe una variable más del arreglo. Explícate.
Primero que todo ese programa es que escribí no funciona, es más si cambio algo por ejemplo a[j]=i; cambia tambien la variable j!!
¿Por quéé?
¿Cómo debería hacer ese programa?
Puedes programarlo y explicarme como lo has hecho, porque ya me he cansado de esperar.
Lo complicas al momento de imprimir los datos, debería ser así:
for( i = 0; i < 48; i++)
printf("%d\n",a[i]);
Ex novo
/*
Escribir un programa que complete un arreglo con los números pares que se encuentren entre 100 y 200 y los muestre en pantalla en orden descendente.
*/
#include <stdio.h>
int main (void){
int a[48];
int i,j;
j=0;
for (i=51; i<100; i++){
a[j]=i*2;
j++;
}
printf ("j: ###%d\n",j);
return 0;
}
El valor de j es 199
/*
Escribir un programa que complete un arreglo con los números pares que se encuentren entre 100 y 200 y los muestre en pantalla en orden descendente.
*/
#include <stdio.h>
int main (void){
int a[48];
int i,j;
j=0;
for (i=51; i<100; i++){
a[0]=i*2;
j++;
}
printf ("j: ###%d\n",j);
return 0;
}
El valor de j es 49!
¿Qué carajo!?
El problema es como está definido el array, pero ¿Por qué? si son 48 elementos.
Cita de: nisteeklod en 3 Octubre 2015, 18:49 PM
/*
Escribir un programa que complete un arreglo con los números pares que se encuentren entre 100 y 200 y los muestre en pantalla en orden descendente.
*/
#include <stdio.h>
int main (void){
int a[48];
int i,j;
j=0;
for (i=51; i<100; i++){
a[0]=i*2;
j++;
}
printf ("j: ###%d\n",j);
return 0;
}
El valor de j es 49!
¿Qué carajo!?
Evidentemente. El for es lo que tiene, que incrementa las variables xD
Con respecto a la primera pregunta, ya no hace falta decir nada, dado esto último. Accedes a a[48], que no existe. Y como la variable j está en esa posición, sobreescribes la memoria. Simplemente no accedas a posiciones que salen del rango del array.
Cita de: ivancea96 en 3 Octubre 2015, 18:56 PM
Evidentemente. El for es lo que tiene, que incrementa las variables xD
Con respecto a la primera pregunta, ya no hace falta decir nada, dado esto último. Accedes a a[48], que no existe. Y como la variable j está en esa posición, sobreescribes la memoria. Simplemente no accedas a posiciones que salen del rango del array.
Jajajajaja, no estaba todo pegado todavía.
¿Pero no es que tiene 48 elementos, me equivoco?
Son 48 elementos. Es correcto. Pero empieza por 0.
Para que te hagas una idea, en un array de 2 elementos:
[ 0 ],[ 1 ]. Son 2 elementos. No está [ 2 ], ese sería un tercero.
Ya lo entendí
¡Cómo se me pudo pasar eso!
Damn, nigga!