Почему у меня генерируются только отрицательные числа? Почему у меня генерируются только отрицательные числа если должны от -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"); }

22 Ноя 2021 в 20:00
194 +3
0
Ответы
1

Проблема заключается в том, что вы неправильно используете цикл с индексами 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.

17 Апр в 08:31
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 90 211 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир