Заменить все отрицательные элементы массива на значение, введенное пользователем - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Такое задание: Задан вещественный массив размера N. Заменить все отрицательные элементы массива размера N на значение, введенное пользователем. Вот код:
Листинг программы
  1. #include <stdio.h>
  2. int main(int argc, char *argv[])
  3. {
  4. int N,i;
  5. printf("Vvedite kolichestvo elementov: ");
  6. scanf("%d",&N);
  7. if(N<3) {printf("Slishkom malo elementov!\n"); return 0;}
  8. printf("Vvedite elementy massiva: ");
  9. int arr[N];
  10. for(int i=0;i<N;i++)
  11. scanf("%d",&arr[i]);
  12. if (arr[i]<0) printf ("Vvedite luboe znachenie vmesto otricatelnogo: ");
  13. if (arr[i]<0) scanf("%d", &arr[i]);
  14. printf("Rezultat: ");
  15. for(int i=0;i<N;i++)
  16. printf("%d ",arr[i]);
  17. printf("\n");
  18. return 0;
  19. }

Решение задачи: «Заменить все отрицательные элементы массива на значение, введенное пользователем»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.     int N, i;
  7.     double *arr;
  8.     printf("Vvedite kolichestvo elementov:\n ");
  9.     while(1){
  10.         if(scanf("%d",&N) && N > 2)
  11.             break;
  12.         else
  13.             puts("Error input!Try again.");
  14.             getchar();
  15.     }
  16.     arr = malloc(N * sizeof*arr);
  17.     if(!arr){
  18.         puts("Memory allocation error");
  19.         exit(1);
  20.     }
  21.     while(1){
  22.         printf("Vvedite elementy massiva: \n");
  23.         for(i = 0;i < N; i++)
  24.             if(1 != scanf("%lf", (arr + i))){
  25.                puts("Error input!Try again.");
  26.                getchar();
  27.                break;
  28.             }
  29.         if(i == N) break;
  30.     }
  31.     for(i = 0; i < N; i++)
  32.         printf("%g ", *(arr + i));
  33.     printf("\n");
  34.     for(i = 0;i < N; i++){
  35.         if (*(arr + i) < 0){
  36.             printf ("Vvedite luboe znachenie vmesto otricatelnogo: \n");
  37.             while(1 != scanf("%lf", (arr + i))){
  38.                 puts("Error input!Try again.");
  39.                 getchar();
  40.             }
  41.         }
  42.     }
  43.     printf("Rezultat:\n ");
  44.     for(i = 0; i < N; i++)
  45.         printf("%g ", *(arr + i));
  46.     printf("\n");
  47.     free(arr);
  48.     return 0;
  49. }

Объяснение кода листинга программы

В этом коде выполняются следующие действия:

  1. Ввод количества элементов массива и проверка корректности ввода. Вначале программа запрашивает у пользователя количество элементов массива и сохраняет его в переменной N. Затем с помощью цикла while происходит проверка корректности ввода. Если пользователь ввёл некорректное значение (например, отрицательное число или букву вместо цифры), программа выводит сообщение об ошибке и просит ввести значение заново. Если же пользователь ввёл корректное значение, программа переходит к следующему этапу.
  2. Выделение памяти под массив. С помощью функции malloc выделяется память под массив. Размер массива определяется переменной N. Если память не удалось выделить, программа выводит сообщение об ошибке и завершает работу.
  3. Ввод элементов массива. Программа запрашивает у пользователя ввод всех элементов массива. Для каждого элемента выполняется проверка корректности ввода. Если пользователь ввёл некорректное значение, программа выводит сообщение об ошибке и просит ввести значение заново. Если же пользователь ввёл корректное значение, оно сохраняется в соответствующем элементе массива.
  4. Замена отрицательных элементов массива. После ввода всех элементов массива программа проверяет каждый элемент на отрицательность. Если элемент отрицательный, программа запрашивает у пользователя новое значение и сохраняет его в соответствующем элементе массива.
  5. Вывод результата. После завершения ввода и замены отрицательных элементов программа выводит массив на экран. Таким образом, данный код выполняет задачу по замене отрицательных элементов массива на значения, введенные пользователем.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.9 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы