почему у меня не работает программа, нужно найти разницу элементов массива которые случайно генерируются в диапазоне

#include<iostream>
#include<math.h>
#include<algorithm>
#include<time.h>
using namespace std;

int main()
{
    const int a = 2; /// минимальное значение массива
    const int b = 18; /// максимальное значение массива
    int subtraction;/// разнца элементов массива
    const int lenght = 7;
    int K[lenght] = {}; /// массив

    srand(time(NULL));

    for (int i = 0; i < lenght; i++) {
        int K[7] = { a + rand() % (b - a + 1) }; 
        
    }


    sort(K, K + lenght);

    for (int i = 0; i < lenght; i++) {
        int num1 = K[1];
        int num2 = K[2];
        int num3 = K[3];
        int num4 = K[4];
        int num5 = K[5];
        int num6 = K[6];
        int num7 = K[7];

        subtraction = num7 - num6 - num5 - num4 - num3 - num2 - num1;
        cout << subtraction;
    }
    return 0;
}

Ответы (1 шт):

Автор решения: Юрий Козлов

Одна опечатка:

       int K[7] = { a + rand() % (b - a + 1) }; 

как понимаю, имелось в виду

       K[i] = { a + rand() % (b - a + 1) }; 

И одна ошибка: индексы массива идут от 0 до length-1, а у Вас дважды встречается K[7], что является выходом за пределы массива

→ Ссылка