Как заменить подсчет суммы элементов столбца подсчетом суммы элементов строки?
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int n, m, c, sum = 0;
printf("Enter the number of rows and columns in the array: ");
scanf("%d %d", &n, &m);
int *arr = malloc(n * m * sizeof(int));
if (arr == NULL) {
printf("ERROR. Unable to allocate memory for the array\n");
return 1;
}
printf("Enter the rows values: \n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
scanf("%d", &arr[i * m + j]);
}
}
printf("Matrix:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
printf("%d ", arr[i * m + j]);
}
printf("\n");
}
printf("Enter the row number to calculate its sum:\n");
scanf("%d", &c);
if(c <= 0 || c > n){
printf("Error: this row does not exist\n");
}
else{
printf("The sum of %d array is:\n", c);
for (int i = 0; i < m; i++) {
int j = c-1;
sum += (arr[i * n + j]);
}
printf("%d\n", sum);
}
free(arr);
return 0;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Не вдавался в верность всего кода, но если ваш код работает, то
printf("The sum of %d array is:\n", c);
for (int i = 0; i < m; i++) {
int j = c-1;
sum += (arr[i * n + j]);
}
printf("%d\n", sum);
надо поменять на
printf("The sum of %d array is:\n", c);
for (int j = 0; j < m; j++) {
sum += arr[c * n + j];
}
printf("%d\n", sum);
Если нумерация с 0; если с 1 — то
printf("The sum of %d array is:\n", c);
for (int j = 0; j < m; j++) {
sum += arr[c * n - n + j];
}
printf("%d\n", sum);