Почему у меня генерируются только отрицательные числа? Почему у меня генерируются только отрицательные числа если должны от -10 до 10.#include #include #include #include #include #include using namespace std; int main() { setlocale(LC_ALL, "RUS"); srand(time(NULL)); const int n = 5, m = 7; double x[n], b[m]; int i, a = 0, g = 0, f = -10, t = 10; for (i = 0; i < n; i++) { x[i] = f + rand() % t; } for (i = 0; i < n; i++) { cout << x[i] << "\t"; } cout << "" << endl; for (i = 0; i < n; i++) { if (x[i] < 0) { for (a; a <= i; a++) { b[a] = x[i]; g++; } a = g; } cout << b[a-1] << "\t"; } system("PAUSE"); }
Проблема заключается в том, что вы неправильно используете цикл с индексами a и g. Внутри цикла вы присваиваете значение x[i] массиву b[a], но затем увеличиваете a и g только в случае, если x[i] < 0. Это приводит к тому, что только отрицательные числа копируются в массив b, а положительные числа игнорируются.
Чтобы исправить эту проблему, вам нужно изменить цикл с копированием элементов из x в b следующим образом:
for (i = 0; i < n; i++) { if (x[i] < 0) { b[a] = x[i]; a++; } } for (i = 0; i < a; i++) { cout << b[i] << "\t"; }
Этот код скопирует только отрицательные числа из массива x в массив b и затем выведет их на экран.
После внесения этих изменений, код должен работать правильно и генерировать числа в заданном диапазоне от -10 до 10.
Проблема заключается в том, что вы неправильно используете цикл с индексами a и g. Внутри цикла вы присваиваете значение x[i] массиву b[a], но затем увеличиваете a и g только в случае, если x[i] < 0. Это приводит к тому, что только отрицательные числа копируются в массив b, а положительные числа игнорируются.
Чтобы исправить эту проблему, вам нужно изменить цикл с копированием элементов из x в b следующим образом:
for (i = 0; i < n; i++) {if (x[i] < 0) {
b[a] = x[i];
a++;
}
}
for (i = 0; i < a; i++) {
cout << b[i] << "\t";
}
Этот код скопирует только отрицательные числа из массива x в массив b и затем выведет их на экран.
После внесения этих изменений, код должен работать правильно и генерировать числа в заданном диапазоне от -10 до 10.