Определить номер столбца, содержащего только положительные элементы - C (СИ)
Формулировка задачи:
Задание:
Нужно в Code Blocks задать целочисленную матрицу. Определить номер столбца , содержащего только положительные элементы. при отсутствии такого столбца вывести сообщение.
Решение задачи: «Определить номер столбца, содержащего только положительные элементы»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int** array; unsigned row, col; unsigned i, j; unsigned find = 0; srand(time(NULL)); printf("row and col: "); scanf("%u%u", &row, &col); array = malloc(row * sizeof(int*)); for (i = 0; i < row; ++i) { array[i] = malloc(col * sizeof(int)); for (j = 0; j < col; ++j) { array[i][j] = rand() % 20 - 10; printf("%4d", array[i][j]); } printf("\n"); } for (j = 0; j < col; ++j) { for (i = 0; (i < row) && (array[i][j] > 0); ++i) { ; } if (row == i) { find++; printf("col: %u\n", j + 1); } } if (find == 0) { printf("not found ...\n"); } return 0; }
Объяснение кода листинга программы
В этом коде:
- Объявлены переменные:
array
- двумерный массив (матрица) типаint
для хранения целых чисел;row
иcol
- переменные для хранения количества строк и столбцов в матрице соответственно;i
иj
- индексы для перемещения по матрице;find
- счётчик для поиска столбца с положительными числами;srand
,time(NULL)
,rand()
- используются для инициализации генератора случайных чисел и заполнения матрицы случайными числами.
- С помощью функции
scanf()
пользователь вводит количество строк и столбцов матрицы. - С помощью
malloc()
выделяется память под матрицу и её строки. - В цикле заполняются ячейки матрицы случайными числами от -10 до 10.
- В цикле осуществляется поиск столбца, содержащего только положительные числа.
- Если такой столбец найден, то выводится его номер.
- Если ни один столбец не содержит только положительные числа, то выводится сообщение
not found
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д