Заменить все отрицательные элементы массива на значение минимального положительного элемента - C (СИ)
Формулировка задачи:
Помогите пожалуйста!!
Задан вещественный массив размером N. Заменить все отрицательные элементы
массива размером N на значение минимального положительного элемента.
Задать массив задала, но дальше не получается и все тут начало вот
Но дальше не получается((
Точнее пару раз вроде и получилось, но работало не стабильно...
И гугл не помогает, и ни как...
#include <stdio.h> #include <locale.h> #define N 10 int main(void) {setlocale(LC_ALL, "RU"); double mass[N]; //массив вещественных чисел int i; //счетчик for( i = 0; i < N; i++ )// заполняем массив { printf( "[%u]=", i+1 ); scanf("%d", mass+i); }
Решение задачи: «Заменить все отрицательные элементы массива на значение минимального положительного элемента»
textual
Листинг программы
#include <stdio.h> #include <time.h> #include <Windows.h> #define SIZE 10 #define LOWER -100 #define HIGHER 100 int main() { srand(time(NULL)); int *arr = malloc(SIZE*sizeof(int)); int *min_pos; int i, counter; for (i = 0; i < SIZE; i++) { arr[i] = rand() % (HIGHER - LOWER + 1) + LOWER; printf("%3d ", arr[i]); if (arr[i] > 0) { min_pos = arr[i]; } } // find the positive minimum for (counter = 0; counter < SIZE; counter++) { if ((*(arr + counter) < min_pos) && (*(arr + counter) > 0)) { min_pos = *(arr + counter); } } printf("\n\nThe minimum is %d\n\n", min_pos); // change negative elements with positive minimum and print the array for (counter = 0; counter < SIZE; counter++) { if (*(arr + counter) < 0){ *(arr + counter) = min_pos; } printf("%3d ", *(arr + counter)); } system("pause"); return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы:
для работы с выводом данных в консоль, для получения текущего времени, для работы с консолью. - Определяем размер массива (10 элементов) и границы случайного выбора чисел для заполнения массива (от -100 до 100).
- Инициализируем генератор случайных чисел текущим временем.
- Выделяем память под массив целых чисел с помощью функции malloc.
- Инициализируем переменную min_pos, которая будет хранить минимальное положительное число.
- Заполняем массив случайными числами от LOWER до HIGHER с помощью цикла for и функции rand.
- Выводим заполненный массив на экран с помощью функции printf.
- Находим минимальное положительное число с помощью двух вложенных циклов for и условного оператора if. Внешний цикл считает количество положительных чисел, а внутренний ищет наименьшее положительное число.
- Выводим найденное минимальное положительное число на экран с помощью функции printf.
- Заменяем все отрицательные числа в массиве на найденное минимальное положительное число с помощью цикла for и условного оператора if.
- Выводим измененный массив на экран с помощью функции printf.
- Ожидаем нажатия клавиши для завершения работы программы с помощью функции system(
pause
). - Возвращаем 0, чтобы указать, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д