Указатели

Задача 12.

#include <iostream>
 
using namespace std;
 
int main()
{
    int A[10] = {0}, sizeA;
    int *pA = A;
 
    // Въвежда се размерността на масива
    std::cout << "Input size A: ";
    std::cin >> sizeA;
 
    // Въвеждат се елементите на масива
    std::cout << "Input array:" << std::endl;
    int i=0;
    while(i<sizeA) {
        std::cout << "A[" << i << "]= ";
        std::cin >> *pA++;
        i++;
    }
    std::cout << std::endl;
 
    // Насочва указателя към началото на масива (нулевия елемент)
    pA = A;
 
    int min, max;
    min = max = *pA;
 
    i=0;
    while(i++<sizeA) {
        if( min > *pA ) min = *pA;
        if( max < *pA ) max = *pA;
        pA++;
    }
 
    // Извежда намерените стойности
    std::cout << "Max: " << max << std::endl;
    std::cout << "Min: " << min << std::endl;
    std::cout << "Max-Min: " << (max-min) << std::endl;
 
    return 0;
}

Задача 13.

#include <iostream>
 
using namespace std;
 
int main()
{
    int B[20] = {0}, sizeB;
    int *pB = B;
 
    // Въвежда се размерността на масива
    std::cout << "Input size B: ";
    std::cin >> sizeB;
 
    // Въвеждат се елементите на масива
    std::cout << "Input array:" << std::endl;
    int i=0;
    while(i<sizeB) {
        std::cout << "B[" << i << "]= ";
        std::cin >> *pB++;
        i++;
    }
    std::cout << std::endl;
 
    // Насочва указателя към началото на масива (нулевия елемент)
    pB = B;
 
    double positiveNumbersSum = 0.0;
    int negativeNumbersCnt = 0;
 
    i=0;
    while(i++<sizeB) {
        if( *pB  >= 0) positiveNumbersSum += *pB;
        else  negativeNumbersCnt++;
        pB++;
    }
 
    // Извежда намерените стойности
    std::cout << "Sum of positive numbers: "   << positiveNumbersSum  << std::endl;
    std::cout << "Count of negative numbers: " << negativeNumbersCnt << std::endl;
 
    return 0;
}

Задача 14.

#include <iostream>
 
using namespace std;
 
int main()
{
    int C[30] = {0}, sizeC;
    int *pC = C;
 
    // Въвежда се размерността на масива
    std::cout << "Input size C: ";
    std::cin >> sizeC;
 
    // Въвеждат се елементите на масива
    std::cout << "Input array:" << std::endl;
    int i=0;
    while(i<sizeC) {
        std::cout << "C[" << i << "]= ";
        std::cin >> *pC++;
        i++;
    }
    std::cout << std::endl;
 
    // Насочва указателя към началото на масива (нулевия елемент)
    pC = C;
 
    /* След края на следващия цикъл брояча i с равен на индекса
      на елемента след 1-вия отрицателен, а указателя pC е насочен
      към отрицателния елемент */
    i=0;
    while( i++<sizeC && *pC >= 0) pC++;
 
    std::cout << "First negative number: " << *pC++ << std::endl;
 
    double sum = 0.0;
    while( i++<sizeC ) sum += *pC++;
 
    std::cout << "Sum: " << sum << std::endl;
 
    return 0;
}

Задача 15.

#include <iostream>
 
using namespace std;
 
int main()
{
    int D[40] = {0}, sizeD;
    int *pD = D;
 
    // Въвежда се размерността на масива
    std::cout << "Input size D: ";
    std::cin >> sizeD;
 
    // Въвеждат се елементите на масива
    std::cout << "Input array:" << std::endl;
    int i=0;
    while(i<sizeD) {
        std::cout << "D[" << i << "]= ";
        std::cin >> *pD++;
        i++;
    }
    std::cout << std::endl;
 
    // Насочва указателя към началото на масива (нулевия елемент)
    pD = D;
 
    double evenNumbersSum=0.0;
    int evenNumbersCnt = 0;
    i=0;
    while( i++ < sizeD ) {
        if( *pD%2 == 0 ) {
            evenNumbersSum += *pD  ;
            evenNumbersCnt++;
        }
        pD++;
    }
 
    if(evenNumbersCnt) {
        std::cout << "Average of even numbers: " << (evenNumbersSum/evenNumbersCnt) << std::endl;
    }
    else {
        std::cout << "Not found even numbers!" << std::endl;
    }
 
    return 0;
}

Задача 16.

#include <iostream>
 
using namespace std;
 
int main()
{
    int E[40] = {0}, sizeE;
    int *pE = E;
 
    // Въвежда се размерността на масива
    std::cout << "Input size E: ";
    std::cin >> sizeE;
    std::cout << std::endl;
 
    // Въвеждат се елементите на масива
    std::cout << "Input array:" << std::endl;
    int i=0;
    while(i<sizeE) {
        std::cout << "E[" << i << "]= ";
        std::cin >> *pE++;
        i++;
    }
    std::cout << std::endl;
 
    // Насочва указателя към началото на масива (нулевия елемент)
    pE = E;
 
    double multiplay = 1;
    bool foundMultiplay = false;
    i=0;
    while( i++ < sizeE ) {
        if( *pE%3 == 0 ) {
            multiplay *= *pE;
            foundMultiplay = true;
        }
        pE++;
    }
 
    if(foundMultiplay) {
        std::cout << "Multiplay: " << multiplay << std::endl;
    }
    else {
        std::cout << "Not found multiples of 3!" << std::endl;
    }
 
    return 0;
}