Определить сумму элементов каждого столбца левой половины матрицы - C (СИ)
Формулировка задачи:
Вот задача:
Матрица A[N,M] (М кратно 4) разделена по вертикали на две половины. Определить сумму элементов каждого столбца левой половины и сумму элементов каждого четного столбца правой половины матрицы А.
Помогите плиз
const
n=5;
m=8;
var
mas:array[1..n,1..m] of integer;
sum:integer;
i,j:word;
begin
Randomize;
writeln('Исходная матрица');
for i:=1 to n do
for j:=1 to m do
begin
mas[i,j]:=random(50)+1;
write(mas[i,j]:3);
if j=m then writeln;
end;
writeln('Суммы столбцов левой половины');
for j:=1 to m div 2 do
begin
sum:=0;
for i:=1 to n do
sum:=sum+mas[i,j];
writeln('Сумма ',j,' столбца= ',sum);
end;
writeln('Суммы четных столбцов правой половины');
for j:=m div 2+1 to m do
begin
if j mod 2 = 0 then
begin
sum:=0;
for i:=1 to n do
sum:=sum+mas[i,j];
writeln('Сумма ',j,' столбца= ',sum);
end;
end;
readln;
end.Решение задачи: «Определить сумму элементов каждого столбца левой половины матрицы»
textual
Листинг программы
#include <stdio.h>
#include <locale.h>
#include <time.h>
#include <stdlib.h>
int main(){
setlocale(LC_ALL, "rus");
srand(time(0));
int **array_a;
int i, j, k;
int sum;
int line;
int column;
printf("Введите размер матрицы: ");
scanf("%d %d", &line, &column);
while(column % 4 != 0){
printf("Введите количество столбцов кратное 4: ");
scanf("%d", &column);
}
array_a = (int**)malloc(sizeof(int)*line);
for(i = 0; i < line; i++)
array_a[i] = (int*)malloc(sizeof(int)*column);
for(i = 0; i < line; i++){
printf("\n");
for(j = 0; j < column; j++){
array_a[i][j] = rand()%10;
printf("%d ", array_a[i][j]);
}
}
printf("\n");
for(i = 0; i < column/2; i++){
sum = 0;
for(j = 0; j < line; j++){
sum += array_a[j][i];
}
printf("Столбец: %d Сумма: %d\n", i, sum);
}
for(i = column/2; i < column; i+=2){
sum = 0;
for(j = 0; j < line; j++){
sum += array_a[j][i];
}
printf("Столбец: %d Сумма: %d\n", i, sum);
}
return 0;
}
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы
- Устанавливается русская локальная настройка
- Инициализируется генератор случайных чисел
- Создается двумерный массив и выделяется память под него
- Массив заполняется случайными числами от 0 до 9
- Выводится заполненный массив
- Создается переменная для хранения суммы элементов столбца
- Выполняется цикл по нечетным столбцам (счет начинается с 0)
- В каждой итерации цикла суммируются элементы строки
- Выводится сумма и номер столбца
- Выполняется цикл по четным столбцам (счет начинается с 1)
- В каждой итерации цикла суммируются элементы строки
- Выводится сумма и номер столбца
- Программа возвращает 0, заканчивая свое выполнение