Error: "........Dejo de funcionar"

Iniciado por SDCC, 10 Noviembre 2017, 04:42 AM

0 Miembros y 1 Visitante están viendo este tema.

SDCC

Código (cpp) [Seleccionar]
#include <stdio.h>

int main(){
int m,x,j,m2[m],m3[x];

for (m=1;m<=10;m++){
m2[m]=m*3;
}
for (x=1;x<=10;x++){
m3[x]=x*2;
}
for(x=1;x<=10;x++){
for(j=1;j<=10;j++){
if(m2[x] == m3[j]){
printf("%i \n",m2[j]);
}
}
}
}



Buenos dias compañeros disculpen estoy comenzando en esto y me tope con este error a la hora de asignar una valor dentro una matriz , tengo la percepción de que el error puede estar en ell como declare alguna variable pero realmente aun no logro entender de manera lógica en que es lo que estoy mal , principalmente el programa es sencillo y lo único que intento hacer es que se imprima los valores que se repiten en la tabla de 2 y 3

CalgaryCorpus

Pide memoria explicita, por ejemplo 

int arreglo[10];   <-- 10 enteros

esto esta mal:

int arreglo
  • ;   <--- cuantos elementos tiene este arreglo?

    Para C / C++ tienes siempre que especificar el tamano de los arreglos cuando los defines.
    No es necesario cuando luego los usas (los recorres). En ese momento tienes que recordar que los indices validos van de 0 hasta el valor que pusiste en tu definicion - 1.

    Osea para este arreglo:

    int arreglo[10];

    los indices validos van de 0 a 9.

    hacer un ciclo asi:

    for( i = 1; i <= 10; i++ ) arreglo = ..

    tiene el inconveniente que cuando i vale 10,  arreglo[10] no existe, (recuerdas que los indices van de 0 a 9?)

    Tu programa esta lleno de estos errores.
    Los corrijes y el programa se comportara mejor.
Aqui mi perfil en LinkedIn, invitame un cafe aqui