Практические / Отчеты студентов 2011-2012 / ВТ-11 Лр / Баранова / Лаба 5
.docМОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ЛЕСА
Факультет электроники и системотехники.
Лабораторная работа № 5
по программированию на языке высшего уровня С
Тема: «Двумерные массивы»
Выполнил студент: Баранова Н.Г. ВТ-11
Проверил: Ларионов Н.В.
Москва 2011 г.
-
Условия задания:
Дана целочисленная квадратная матрица. Определить:
1) сумму элементов в тех столбцах, которые не содержат отрицательных элементов;
2) минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы.
-
Данные:
Входные данные: i, j, matrix[ROWS][COLS].
Рабочие данные: sum, min.
-
Схема программы:
-
Листинг программы:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define ROWS 4
#define COLS 4
int main()
{
int matrix[ROWS][COLS];
int i = 0;
int j = 0;
int k = 0;
int min = 0;
int sum = 0;
for(i = 0; i < ROWS; ++i)
for(j = 0; j < COLS; ++j)
matrix[i][j] = rand() % 9;
for(i = 0; i < ROWS; ++i) {
for(j = 0; j < COLS; ++j)
printf("%d ", matrix[i][j]);
printf("\n");
}
for(k = 0; k < ROWS - 1 && k < COLS - 1; ++k) {
sum = 0;
for(i = 0, j = 0; i < ROWS && j < COLS - 1 - k; ++i, ++j) {
sum += abs(matrix[i][COLS - 2 - j - k]);
}
if(sum < min || min == 0)
min = sum;
}
for(k = 0; k < ROWS - 1 && k < COLS - 1; ++k) {
sum = 0;
for(i = ROWS - 1, j = COLS - k - 1; i >= 0 && j < ROWS; --i, ++j) {
sum += abs(matrix[i][j]);
}
if(sum < min || min == 0)
min = sum;
}
printf("min: %d\n", min);
return 0;
}
-
Тестовые задачи: