Найти первый столбец в котором нет отрицательных элементов, отсортировать элементы столбцов по убыванию - C (СИ)
Формулировка задачи:
Задание такое, найти первый столбец в котором не содержится отрицательных элементов, и еще отсортировать элементы столбцов по убыванию( сортировку я сделал кое как).но вот проблема с нахождением этого столбца, выдает бред какой то.Посмотрите пожалуйста.
#include <stdio.h> #include <conio.h> #include <iostream> void main () { const int str=5; const int stolb=4; int i,j; int massiv[str][stolb]; for (int a = 0; a <str; a++) { for (int b = 0; b <stolb; b++) { massiv[a][b]=0 + rand() % 20; } } for (i=0; i<str; ++i) { for (j=0; j<stolb; ++j) printf("massiv %d ",massiv[i][j]); printf ("\n"); } printf("\n\n"); int kolon = 0; bool flag; for (j = 0; j < stolb; j++) { // здесь ищем колонки без отрицательных чисел for (i = 0; i < str-1; i++) { if (massiv[i][j] >= 0) { flag = true; continue; } else { flag = false; break; } } if (flag) kolon=i+1 ; } if (flag) printf("Nomer pervogo izstolbcov ne soderzh ni odnogo otric elementa:%d\n", kolon); else printf("All columns contains negative numbers.\n\n\n"); int tmp; for (j = 0; j < stolb; j++) // мотаю цикл столбцов //сортировка по столбцам.строки не трогаю for (i = 0; i < str-1; i++) // мотаю цикл строк for (int k = i; k < str; k++) // сортирующий цикл if (massiv[i][j] > massiv[k][j]) { tmp = massiv[i][j]; // если одно число больше следующего massiv[i][j] = massiv[k][j]; // меняю местами massiv[k][j] = tmp; } for (i=0; i<str; ++i) { // вывод отсортированного массива for (j=0; j<stolb; ++j) printf("massiv %d ",massiv[i][j]); printf ("\n"); } }
Решение задачи: «Найти первый столбец в котором нет отрицательных элементов, отсортировать элементы столбцов по убыванию»
textual
Листинг программы
if ((flag)&&(k==0)) { kolon=j+1; k++; }
Объяснение кода листинга программы
В данном коде выполняется следующая последовательность действий:
- Проверяется условие ((flag)&&(k==0)). Оно проверяет, что флаг равен true и переменная k равна 0. Это условие контролирует первую итерацию цикла.
- Если условие истинно, то выполняется блок кода внутри фигурных скобок.
- Внутри блока кода:
- Переменная kolon получает значение j+1. То есть, она получает номер следующего столбца, начиная с 1.
- Переменная k увеличивается на 1. Она используется как счетчик и увеличивается на 1 после каждой итерации цикла.
- После выполнения блока кода, цикл продолжается следующей итерацией. Таким образом, данный код находит первый столбец без отрицательных элементов и сохраняет его номер в переменной kolon. Затем, цикл продолжается, чтобы найти следующие столбцы без отрицательных элементов.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д