В массиве вставить новый элемент со значением P вслед за наибольшим из отрицательных - C (СИ)

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

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

Задача:

В массиве A=(a1,a2,....an) вставить новый элемент со значением P вслед за наибольшим из отрицательных элементов этого массива. Нужно решить с помощью указателей. Подскажите что поменять в данном коде, правильно ли я "копаю"?
Листинг программы
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. void firstfunction(int Size,int *Array)
  5. {
  6. printf("vvedite values of massiv");
  7. for(int i=0; i<Size; i++)
  8. {
  9. scanf("%d", &Array[i]);
  10. }
  11. for (int i=0; i<Size; i++)
  12. {
  13. if (Array[i]<0)
  14. {
  15. int *Y=&Array[i];
  16. break;
  17. }
  18. }
  19.  
  20. for (int i=0; i<Size; i++)
  21. {
  22. if ((Array[i]<0) && (int *Y<Array[i]))
  23. {
  24. int Y=Array[i];
  25. int u=i;
  26. }
  27. }
  28. }
  29. int main()
  30. {
  31. int lol,i,P,u,*L,*Y,B,m;
  32. printf("vvedite razmer massiva");
  33. scanf("%d", &m); /*Ввод кол-ва элементов массива*/
  34. const int N=m;
  35. int A[N];
  36. printf("vvedite P\n");
  37. scanf("%d", &P); /*Ввод элемента Р, будет подставляться после наибольшего отрицательного*/
  38. firstfunction(N,A); /*Вызов функции*/
  39.  
  40. for (i=0; i<=u; i++) /* вывод элементов */
  41. {
  42. printf("%d",A[i]);}
  43. printf("%d", P);
  44. for (i=u+1; i<N; i++)
  45. {
  46. printf("%d", A[i]);}
  47.  
  48. return 0;
  49. }

Решение задачи: «В массиве вставить новый элемент со значением P вслед за наибольшим из отрицательных»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4.  
  5. int firstfunction(int Size, int *Array)
  6. { int i,u;
  7.   int* Y;
  8.  
  9.   Y=Array;
  10.    
  11.  
  12.   for (i=1; i<Size; i++)
  13.   {
  14.     if ((Array[i]<0) && (*Y<Array[i]))
  15.     {
  16.     Y=&Array[i];
  17.     u=i;
  18.     }
  19.   }
  20.   return u;
  21. }
  22.  
  23. int main()
  24. {
  25.   int lol,i,P,u,*L,*Y,B,m;
  26.   int* A;
  27.  
  28.   printf("vvedite razmer massiva\n");
  29.   scanf("%d", &m); /*Ââîä êîë-ГўГ* ýëåìåГ*òîâ Г¬Г*Г±Г±ГЁГўГ**/
  30.   A=(int*)malloc(m*sizeof(int));
  31.   printf("vvedite values of massiv\n");
  32.   for(i=0; i<m; i++)
  33.   {
  34.   scanf("%d", &A[i]);
  35.   }
  36.  
  37.  
  38.   printf("vvedite P\n");
  39.   scanf("%d", &P); /*Ââîä ýëåìåГ*ГІГ* Гђ, áóäåò ïîäñòГ*âëÿòüñÿ ïîñëå Г*Г*èáîëüøåãî îòðèöГ*òåëüГ*îãî*/
  40.   u=firstfunction(m,A); /*Âûçîâ  ГґГіГ*ГЄГ¶ГЁГЁ*/
  41.   printf("%d\n",u);
  42.  
  43.   for (i=0; i<=u; i++)  // âûâîä ýëåìåГ*òîâ
  44.   {
  45.   printf("%d",A[i]);
  46.   }
  47.    printf("%d",P);
  48.  
  49.   for (i=u+1; i<m; i++) // âûâîä ýëåìåГ*òîâ
  50.   {
  51.   printf("%d",A[i]);
  52.   }
  53.   getch();
  54.   return 0;
  55. }

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

Код выполняет следующие действия:

  1. Сначала пользователю предлагается ввести размер массива.
  2. Затем массив инициализируется значениями, введенными пользователем.
  3. После этого пользователю предлагается ввести значение P.
  4. Функция firstfunction() находит индекс последнего отрицательного элемента в массиве.
  5. Затем в массив вставляется новый элемент со значением P вслед за найденным отрицательным элементом.
  6. Выводится на экран новый массив с вставленным элементом.

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


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

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

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

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

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

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