Матрица и сума отрицательных масивов - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Задача 3.1 – найти сумму выделенных элементов матрицы. Задача 3.2 – вычислить определитель выделенной подматрицы размером 3x3. При заполнении матрицы случайными числами они должны находиться в пределах диапазона, заданного для данного варианта. мысли не лезут дотянул до дэдлайна и вот вторая задача не могу понять чего не правильно считает или это бред? Вычислить сумму элементов массива, расположенных между первым и вторым отрицательными элементами.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
int main(void)
{
    int N = 0;
    printf("Input the number of elements N = "); scanf("%d", &N);
 
    int* X = new int[N];
    for (int t = 0; t < N; t++)
    {
        printf("X[%d] = ", t); scanf("%d", &X[t]);
    }
 
    int min = 0;
    for (int i = 0; i < N; i++)
        if (X[i] < X[min]) min = i;
 
    int pos[] = { 0, 0 }, count = 0;
    for (int k = 0; (k < N) && (count < 2); k++)
        if (X[k] <= 0) { pos[count] = k; count++; }
 
    int sum = 0, q = pos[0] + 1;
    while (q < pos[1]) sum += X[q++];
 
    int n = 0, *new_X = new int[N];
    for (int l = 0; l < N; l++)
        if (abs(X[l]) <= 1) new_X[n++] = X[l];
 
    for (int m = 0; m < N; m++)
        if (X[m] != 1) new_X[n++] = X[m];
 
    for (int z = 0; z < N; z++)
        printf("%d ", X[z]);
 
    printf("\tX[%d] = %d sum = %d\n", min, X[min], sum);
 
    for (int v = 0; v < N; v++)
        printf("%d ", new_X[v]);
    printf("\n");
 
    _getch();
 
    return 0;
}

Решение задачи: «Матрица и сума отрицательных масивов»

textual
Листинг программы
int pos[] = { 0, 0 }, count = 0;
    for (int k = 0; (k < N) && (count < 2); k++)
        if (X[k] <= 0) { pos[count] = k; count++; }

Объяснение кода листинга программы

В данном коде:

  1. Объявлена переменная pos типа int с начальным значением { 0, 0 }.
  2. Объявлена переменная count типа int с начальным значением 0.
  3. Задан цикл for, который выполняется до тех пор, пока условие (k < N) && (count < 2) истинно.
  4. Внутри цикла проверяется условие X[k] <= 0, если оно истинно, то выполняется следующее действие.
  5. Значение k присваивается переменной pos[count], а затем увеличивается значение count на единицу.
  6. После выхода из цикла, в переменной pos будут храниться два отрицательных индекса массива X.
  7. Если в массиве X есть больше двух отрицательных элементов, то они не будут учтены в данном коде.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы