Сформировать вектор из элементов матрицы - C (СИ)
Формулировка задачи:
Даны натуральное число n, целочисленная квадратная матрица порядка n. Получить b1, ..., bn, где bi - это сумма элементов, предшевствующих последнему отрицательному элементу i-строки(если все элементы строки неотрицательны, то принять bi = -1).
Решение задачи: «Сформировать вектор из элементов матрицы»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> #define MATRIXSIZE 10 /* prototype functions */ void addValueMatrix(int [MATRIXSIZE][MATRIXSIZE], int resultArray[MATRIXSIZE]); void genericRandomMatrix(int [MATRIXSIZE][MATRIXSIZE]); int main() { int matrix[MATRIXSIZE][MATRIXSIZE], resultArray[MATRIXSIZE]; srand(time(NULL)); genericRandomMatrix(matrix); addValueMatrix(matrix, resultArray); int index = 0; for (index = 0; index < MATRIXSIZE; index++){ printf("Line #%2d: %d\n", index, resultArray[index]); } return 0; } void addValueMatrix(int array[MATRIXSIZE][MATRIXSIZE], int resultArray[MATRIXSIZE]){ int inExt = 0, result = 0, inRes = 0; for(inExt = 0; inExt < MATRIXSIZE; inExt++){ int inInd = 0, flag = 0; result = 0; for(; inInd < MATRIXSIZE; inInd++){ if (array[inExt][inInd] < 0) { inInd = MATRIXSIZE; // break in loop resultArray[inRes++] = result; flag = 1; } else { result += array[inExt][inInd]; } } if (0 == flag){ resultArray[inRes++] = -1; } } } void genericRandomMatrix(int matrix[MATRIXSIZE][MATRIXSIZE]){ int inExt = 0; for(inExt = 0; inExt < MATRIXSIZE; inExt++){ int inInd = 0; for(; inInd < MATRIXSIZE; inInd++){ matrix[inExt][inInd] = -3 + rand()%99; } } for(inExt = 0; inExt < MATRIXSIZE; inExt++){ int inInd = 0; printf("#%2d:", inExt); for(; inInd < MATRIXSIZE; inInd++){ printf("%3d ", matrix[inExt][inInd]); } printf("\n"); } }
Объяснение кода листинга программы
Вот что делает этот код:
- Создает матрицу размером 10x10 и заполняет ее случайными числами от -3 до 96.
- Добавляет значения из матрицы в новый массив, сохраняя только положительные числа и пропуская отрицательные.
- Выводит на консоль значения нового массива по одному в строке.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д