Перевести с паскаля программу: Все отрицательные элементы переместить в начало массива - C (СИ)

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

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

Помогите перевести из паскаля в с
Листинг программы
  1. var
  2. a:array[1..100]of integer;
  3. i,j,t,n:integer;
  4. begin
  5. randomize;
  6. writeln('vvedite kol-vo elementov');
  7. readln(n);
  8. writeln('ishodnyj massiv');
  9. for i:=1 to n do
  10. begin
  11. a[i]:=random(20)-10;
  12. write(a[i],' ');
  13. end;
  14. writeln;
  15. for i:=1 to n do
  16. for j:=1 to n-1 do
  17. if (a[j]>=0)and(a[j+1]<0)then
  18. begin
  19. t:=a[j];
  20. a[j]:=a[j+1];
  21. a[j+1]:=t;
  22. end;
  23. writeln('novyj massiv');
  24. for i:=1 to n do
  25. write(a[i],' ');
  26. readln;
  27. end.
В одномерном массиве все отрицательные элементы перемещаются в начало массива а остальные в конец ,с сохранить порядок следования . Доп. массив заводить нельзя

Решение задачи: «Перевести с паскаля программу: Все отрицательные элементы переместить в начало массива»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. int main()
  6. {
  7.     int size=0;
  8.     int i,j;
  9.     int tmp;
  10.     printf("Enter size of an array\n");
  11.     scanf("%d",&size);
  12.     int arr[size];
  13.     printf("Generated array: \n");
  14.     for(i=0;i<size;i++)
  15.     {
  16.         arr[i]=rand() % 20 + (-10);
  17.         printf("%d",arr[i]);
  18.     }
  19.     printf("\n");
  20.     for(j=0;j<size;j++)
  21.     {
  22.         for(i=0;i<size-1;i++)
  23.         {
  24.             if((arr[i]>=0) && (arr[i+1]<0))
  25.             {
  26.                 tmp = arr[i];
  27.                 arr[i]=arr[i+1];
  28.                 arr[i+1] = tmp;
  29.             }
  30.         }
  31.     }
  32.     printf("Modified array: \n");
  33.     for(i=0;i<size;i++)
  34.     {
  35.         printf("%d",arr[i]);
  36.     }
  37.     printf("\n");
  38.     return 0;
  39. }

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

  1. В начале программы объявляются переменные:
    • size (размер массива),
    • i, j (для циклов),
    • tmp (для временного хранения значения).
  2. Пользователю предлагается ввести размер массива.
  3. Создается массив arr с помощью оператора new в стеке (размер определяется пользователем).
  4. С помощью цикла заполняется массив arr случайными отрицательными числами.
  5. Выводится сгенерированный массив.
  6. Внутренний цикл перебирает массив с начала до конца, проверяет условие: если текущий элемент положительный, а следующий отрицательный, то выполняется обмен элементов.
  7. Выводится измененный массив.
  8. Программа завершается.

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


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

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

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

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

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

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