Заменить все отрицательные элементы массива на значение минимального положительного элемента - 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, чтобы указать, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д