Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <algorithm>
- #include <stdio.h>
- #include <algorithm>
- using namespace std;
- double* a;
- int n;
- void create(double **pa, int* pn){
- printf("n = ");
- scanf("%d", &n);
- a = (double*)malloc(n * sizeof(double));
- for(int i=0;i<n;++i){
- scanf("%lf", &*(a+i));
- }
- *pa = a;
- *pn = n;
- }
- void printArr(double *a){
- printf("текущий массив = \n");
- for(int i=0;i<n;++i){
- printf(" %lf", *(a+i));
- }
- printf("\n");
- }
- int first_max(double* a){
- int i_mx=0;
- double mx = *a;
- for(int i=0;i<n;++i){
- if(mx<*(a+i)){
- mx = *(a+i);
- i_mx = i;
- }
- }
- return i_mx;
- }
- int last_min(double* a){
- int i_mn=0;
- double mn = *a;
- for(int i=0;i<n;++i){
- if(mn>=*(a+i)){
- mn = *(a+i);
- i_mn = i;
- }
- }
- return i_mn;
- }
- void modificate(double** pa, int* pn){
- int i_mx = first_max(a);
- int i_mn = last_min(a);
- if(i_mx < i_mn){
- for(int i = i_mx+1;i<i_mn;++i){
- if(a[i]>0){
- --n;
- for(int j = i;j<n;++j){
- a[j] = a[j+1];
- }
- --i;
- a = (double*)realloc(a, n * sizeof(double));
- *pn = n;
- }
- }
- }else{
- printf("error\n");
- }
- *pa = a;
- *pn = n;
- }
- void add_zero(double **pa, int *pn){
- ++n;
- a = (double*)realloc(a, n * sizeof(double));
- for(int i=n;i>0;--i){
- a[i] = a[i-1];
- }
- a[0] = 0;
- *pn = n;
- *pa = a;
- }
- int main()
- {
- create(&a, &n);
- printArr(a);
- modificate(&a, &n);
- printArr(a);
- add_zero(&a, &n);
- printArr(a);
- free(a);
- return 0;
- }
- //6
- //1 6 -2 4 -2 -1
- //5
- //1 -2 4 6 -1
- //8
- //8 8 8 1 3 -5 -6 -7
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement