Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Ceshi en 16 Abril 2017, 00:24 am



Título: Aiuuuda con matrices en C
Publicado por: Ceshi en 16 Abril 2017, 00:24 am
Buenas tardes, tengo este problemilla: El programa -como doce abajo- debe guardar la producción de 10 plantas durante 7 días. el problema es que cuando uso matrices 4x5 , 6x7 todo bien, pero cuando ingreso la de 7 x10 booom! después de la planta #8 la suma ya no me sale...Podría alguien guiarme? por favor Cx ILÚSTRENME MAESTROS...


Código:
/* Se tiene la producción de los 7 días de la semana de 10 plantas; 
elabora un programa que lea estos datos y los almacene en un arreglo
de 10 renglones para las plantas, en 7 columnas para cada día de
producción, además que imprima el número de planta que tuvo la mayor
producción de la semana*/


#include <stdio.h>
#include <stdlib.h>
#define DIAS_PRODUCCION 7
#define NUM_PLANTAS 10

int main(){

int num_planta,dia, A[NUM_PLANTAS][DIAS_PRODUCCION], sum[DIAS_PRODUCCION], suma;


for(num_planta=0;num_planta<NUM_PLANTAS;num_planta++){
printf("Planta N %d \n", num_planta+1);
for(dia=0;dia<DIAS_PRODUCCION;dia++){
printf("Dia [%d]: ", dia+1);
scanf("%d",&A[num_planta][dia]);
}

}
// Por cuestiones de impresión Cx
printf("\nN PLANTA\t");
for(dia=0; dia<DIAS_PRODUCCION; dia++)
printf("DIA %d\t", dia+1);

printf("TOTAL \n");
//SUMAR PRODUCCION
for(num_planta=0;num_planta<NUM_PLANTAS;num_planta++){
    suma=0;
    for(dia=0;dia<DIAS_PRODUCCION;dia++){
        suma=suma+(A[num_planta][dia]);
    }
    sum[num_planta]=suma;
}
// Para imprimir matriz
for(num_planta=0;num_planta<NUM_PLANTAS;num_planta++){
printf("Planta %d \t", num_planta+1);
for(dia=0;dia<DIAS_PRODUCCION;dia++){
printf(" %d \t", A[num_planta][dia]);
}
printf("%d", sum[num_planta]);
printf("\n");
}

printf("\n");
system("PAUSE");
}


//corregir


Título: Re: Aiuuuda con matrices en C
Publicado por: n-utz en 16 Abril 2017, 00:42 am
Es porque el array lo declaraste mal.

Lo declaraste asi >  sum[DIAS_PRODUCCION]

Y deberia ser > sum[NUM_PLANTAS]


Título: Re: Aiuuuda con matrices en C
Publicado por: MAFUS en 16 Abril 2017, 00:44 am
Tu declaras:
Código:
define DIAS_PRODUCCION 7
#define NUM_PLANTAS 10

// ...
sum[DIAS_PRODUCCION]

Pero después dices:
Código:
for(num_planta=0;num_planta<NUM_PLANTAS;num_planta++){
// ...
    sum[num_planta]=suma;

Si sum está vinculada a días de producción no deberías usarla como array de número de planta. Este error, por una parte lógico, se acrecenta cuándo el número de plantas es mayor al número de días.


Título: Re: Aiuuuda con matrices en C
Publicado por: Ceshi en 16 Abril 2017, 01:59 am
Gracias, que pendeja CX