В массиве вставить новый элемент со значением 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;
- }
Объяснение кода листинга программы
Код выполняет следующие действия:
- Сначала пользователю предлагается ввести размер массива.
- Затем массив инициализируется значениями, введенными пользователем.
- После этого пользователю предлагается ввести значение P.
- Функция firstfunction() находит индекс последнего отрицательного элемента в массиве.
- Затем в массив вставляется новый элемент со значением P вслед за найденным отрицательным элементом.
- Выводится на экран новый массив с вставленным элементом.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д