0 дауыс
418 көрілді
1. n натурал саны мен а1, a2,...an  нақты сандары берілген. Олардың арифметикалық ортасын табу керек.

2. n натурал саны мен а1, a2,...an  нақты сандары берілген. Табу керек: │a1-an│

3. 50 нақты берілген. Оң және теріс сандарының қосындысын табу.

осы есептерді си тілінде бағдарламасын жазу керек.

1 жауап

0 дауыс
 
Жақсы жауап

1) 

#include <iostream>
#include <cstdlib>
using namespace std;
#define n 10
int main(){
    float a[n];
    float sum = 0.0;
        cout <<"IN : ";
    for(int i = 0; i < n; i++){               
        a[i] = static_cast <float> (rand()) / static_cast <float> (RAND_MAX);
                cout<<a[i]<<" ";
            sum += a[i];
    }
    cout<<endl<<"Srednee arif = "<<sum/n;
 
return 0;
}
3)
#include <iostream>
#include <iterator>
#include <vector>

template <typename InputIterator, typename OutputIterator>
OutputIterator Copy(InputIterator first, InputIterator last, OutputIterator result)
{
    while(first != last)
        *result++ = *first++;
    return result;
}

template <typename InputIterator, typename Predicate>
unsigned Count_if(InputIterator first, InputIterator last, Predicate pred)
{
    unsigned Cnt = 0;
    while(first != last)
        if(pred(*first++))
            Cnt++;
    return Cnt;
}

template <typename InputIterator, typename Predicate>
unsigned Accumulate(InputIterator first, InputIterator last, Predicate pred)
{
    unsigned Sum = 0;
    while(first != last)
    {
        if(pred(*first))
            Sum += *first;
        first++;
    }        
return Sum;
}

int main()
{
    std::vector <int> vec;
    std::cout<<"Enter vector"<<std::endl;
    Copy(std::istream_iterator<int>(std::cin), std::istream_iterator <int>(), back_inserter(vec));
    std::cout<<"Input vector"<<std::endl;
    Copy(vec.begin(), vec.end(), std::ostream_iterator <int> (std::cout, " "));
    std::cout<<std::endl<<"Count negative elements = ";
    std::cout<<Count_if(vec.begin(), vec.end(), bind2nd(std::less<int>(), 0));
    std::cout<<std::endl<<"Sum positive elements = ";
    std::cout<<Accumulate(vec.begin(), vec.end(), bind2nd(std::greater<int>(), 0))<<std::endl;
    system("pause");
    return 0;
}
...