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

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

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

Задача:

В массиве A=(a1,a2,....an) вставить новый элемент со значением P вслед за наибольшим из отрицательных элементов этого массива. Нужно решить с помощью указателей. Подскажите что поменять в данном коде, правильно ли я "копаю"?
#include <stdio.h>
#include <math.h>

void firstfunction(int Size,int *Array) 
{
printf("vvedite values of massiv");
for(int i=0; i<Size; i++)
{ 
scanf("%d", &Array[i]);
} 
for (int i=0; i<Size; i++)
{
   if (Array[i]<0)
{
        int *Y=&Array[i];
        break;
}
}

for (int i=0; i<Size; i++)
{
if ((Array[i]<0) && (int *Y<Array[i])) 
{
               int Y=Array[i]; 
               int u=i;
}
}
}
 
int main()
{
int lol,i,P,u,*L,*Y,B,m;
printf("vvedite razmer massiva");
scanf("%d", &m); /*Ввод кол-ва элементов массива*/
 
const int N=m;
int A[N];
printf("vvedite P\n");
scanf("%d", &P); /*Ввод элемента Р, будет подставляться после наибольшего отрицательного*/
firstfunction(N,A); /*Вызов  функции*/

for (i=0; i<=u; i++)  /* вывод элементов */
{
printf("%d",A[i]);}
printf("%d", P);
for (i=u+1; i<N; i++)
{
printf("%d", A[i]);}

return 0;
}

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

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
 
int firstfunction(int Size, int *Array)
{ int i,u;
  int* Y;
 
  Y=Array;
   
 
  for (i=1; i<Size; i++)
  {
    if ((Array[i]<0) && (*Y<Array[i]))
    {
    Y=&Array[i];
    u=i;
    }
  }
  return u;
}
 
int main()
{
  int lol,i,P,u,*L,*Y,B,m;
  int* A;
 
  printf("vvedite razmer massiva\n");
  scanf("%d", &m); /*Ââîä êîë-ГўГ* ýëåìåГ*òîâ Г¬Г*Г±Г±ГЁГўГ**/
  A=(int*)malloc(m*sizeof(int));
  printf("vvedite values of massiv\n");
  for(i=0; i<m; i++)
  {
  scanf("%d", &A[i]);
  }
 
  
  printf("vvedite P\n");
  scanf("%d", &P); /*Ââîä ýëåìåГ*ГІГ* Гђ, áóäåò ïîäñòГ*âëÿòüñÿ ïîñëå Г*Г*èáîëüøåãî îòðèöГ*òåëüГ*îãî*/
  u=firstfunction(m,A); /*Âûçîâ  ГґГіГ*êöèè*/
  printf("%d\n",u);
 
  for (i=0; i<=u; i++)  // âûâîä ýëåìåГ*òîâ
  {
  printf("%d",A[i]);
  }
   printf("%d",P);
 
  for (i=u+1; i<m; i++) // âûâîä ýëåìåГ*òîâ
  {
  printf("%d",A[i]);
  }
  getch();
  return 0;
}

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

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

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

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


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

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

11   голосов , оценка 4.545 из 5
Похожие ответы