Untitled

mail@pastecode.io avatar
unknown
c_cpp
2 years ago
2.0 kB
2
Indexable
Never
#include <iostream>
using namespace std;

void func1(float *mass, int &peri, int &posi, float &s, float &k){   //ф-ия для среднего арифметического//
    for (int i=0; i<10; i++){
        if (mass[i]==0){
            peri=i;
            break;
        }
    }
    for (int i=9; i>=0; i--){
        if (mass[i]==0){
            posi=i;
            break;
        }
    }
    for (int i=0; i<peri; i++){
        s+=mass[i];
        k+=1;
    
    }
    for (int i = posi+1; i<10; i++){
        s+=mass[i];
        k+=1;
    }
}


void func2(float *mass, float &max, float &min, int &maxi, int &mini){     //ф-ия для перемены минимальных и максимальных//
    for (int i=0; i<10; i++){
        if (mass[i]>max){
            max=mass[i];
            maxi=i;
        }
        if (mass[i]<min){
            min=mass[i];
            mini=i;
        }
    }
}   
int main(){
    bool proverka_na_nol = false;
    float *arr = new float[10];
    for (int i=0; i<10; i++){
        cout<<"arr["<<i<<"] = ";
        cin>>arr[i];
    }

    for (int i=0; i<10; i++){
        if (arr[i] == 0){
            proverka_na_nol = true;
        }
    }

    if (proverka_na_nol)
    {
        int peri, posi, maxi, mini = 0;
        float s, k = 0, max, min = arr[0];
        func1(arr, peri, posi, s, k);
        func2(arr, max, min, maxi, mini);
        cout<<"s = "<<s<<" , k = "<<k<<" ,ср.ар. = "<<s/k<<endl;
        cout<<"max = "<<max<<" maxi = "<<maxi;
        cout<<" min = "<<min<<" mini = "<<mini<<endl;
        float c;
        c=arr[0];
        arr[0]=max;
        arr[maxi]=c;
        c=arr[9];
        arr[9]=min;
        arr[mini]=c;
        for(int i = 0; i<10; i++){
            cout<<"arr["<<i<<"] = "<<arr[i]<<endl;
        }
        delete []arr;
    }
    else 
    {
        cout << "В массиве не обнаружен ноль.\nКОНЕЦ!!!";
    }
    return 0;
}