I have two dimensional arrays and I want to sum of column, and find the max of sum. I use malloc for array for initialization. When the program finishes I want to print the result, but result is different from what I expect.
it's result->
2 sum is -> 2 max is -> 4201200
5 sum is -> 7 max is -> 4201200
6 sum is -> 13 max is -> 4201200
8 sum is -> 8 max is -> 4201200
9 sum is -> 17 max is -> 4201200
6 sum is -> 23 max is -> 4201200
5 sum is -> 5 max is -> 4201200
9 sum is -> 14 max is -> 4201200
2 sum is -> 16 max is -> 4201200
max is 4201200 column 0
this is my code --->
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int row = 3, col = 5;
int *a = (int *)malloc(row * col * sizeof(int));
int i, j;
for (i = 0; i < row; i++)
for (j = 0; j < col; j++)
*(a + i * col + j) = (rand() % (10 - 1 + 1)) + 1;
printf("The array elements are:\n");
int sad;
int max1;
int sum = 0;
for (i = 0; i < row; i++) {
for (j = 0; j < row; j++) {
printf("%d ", a[j * col + i]);
sum += a[j * col + i];
printf("sum is -> %d max is -> %d\n", sum, max1);
}
if (sum > max1) {
printf("max is detected");
max1 = sum;
sad = j;
sum = 0;
}
sum = 0;
}
printf("max is %d column %d", max1, sad);
free(a);
return 0;
}
thank you!