Untitled
unknown
c_cpp
a year ago
6.0 kB
14
Indexable
#include <iostream>
#include <string>
#include <vector>
std::vector< int > getNumbers()
{
std::vector< int > result;
int number = 0;
int index = 1;
std::cout << "Enter numbers to put into vector:\n";
while( true )
{
std::cout << "Number " << index << ": ";
std::cin >> number;
if( number == 0 )
{
break;
}
result.push_back( number );
++index;
}
return result;
}
int findMinElement( const std::vector< int >& vec )
{
int min = vec[ 0 ];
for( const auto& e : vec )
{
if( min > e )
{
min = e;
}
}
return min;
}
int findMaxElement( const std::vector< int >& vec )
{
int max = vec[ 0 ];
for( const auto& e : vec )
{
if( max < e )
{
max = e;
}
}
return max;
}
double countAverage( const std::vector< int >& vec )
{
double result;
double sum = 0;
for( const auto& e : vec )
{
sum += e;
}
result = sum / vec.size();
return result;
}
int countDigit3( const std::vector< int >& vec )
{
int result = 0;
for( const auto& e : vec )
{
std::string text = std::to_string( e );
for( const auto& t : text )
{
if( t == '3' )
{
++result;
}
}
}
return result;
}
int findMinElementIndex( const std::vector< int >& vec, int start )
{
int minIndex = start;
for( int i = start + 1; i < vec.size(); ++i )
{
if( vec[ i ] < vec[ minIndex ] )
{
minIndex = i;
}
}
return minIndex;
}
std::vector< int > sort( const std::vector< int >& vec )
{
std::vector< int > result = vec;
for( int i = 0; i < result.size(); ++i )
{
int minIndex = findMinElementIndex( result, i );
std::swap( result[ i ], result[ minIndex ] );
}
return result;
}
double calculateMedian( const std::vector< int >& vec )
{
double result = 0;
std::vector< int > sortedVec = sort( vec );
int size = sortedVec.size();
if( sortedVec.size() % 2 != 0 )
{
result = sortedVec[ size / 2 ];
}
else
{
result = (sortedVec[size / 2 - 1] + sortedVec[size / 2]) / 2.0;
}
return result;
}
std::vector< int > getThreeSmallest( const std::vector< int >& vec )
{
std::vector< int > result;
std::vector< int > sortedVec = sort( vec );
for( int i = 0; i < 3; ++i )
{
result.push_back( sortedVec[ i ] );
}
return result;
}
std::vector< int > getThreeBiggest( const std::vector< int >& vec )
{
std::vector< int > result;
std::vector< int > sortedVec = sort( vec );
for( int i = 0; i < 3; ++i )
{
result.push_back( sortedVec.back() );
sortedVec.pop_back();
}
return result;
}
std::vector< int > getSquareVector( const std::vector< int >& vec )
{
std::vector< int > result;
for( auto const& e : vec )
{
result.push_back( e * e );
}
return result;
}
int countEven( const std::vector< int >& vec )
{
int result = 0;
for( const auto& e : vec )
{
if( e % 2 == 0 )
{
++result;
}
}
return result;
}
int countOdd( const std::vector< int >& vec )
{
int result = 0;
for( const auto& e : vec )
{
if( e % 2 != 0 )
{
++result;
}
}
return result;
}
int countDividedBy3( const std::vector< int >& vec )
{
int result = 0;
for( const auto& e : vec )
{
if( e % 3 == 0 )
{
++result;
}
}
return result;
}
void printVector( const std::vector< int >& vec )
{
for( const auto& e : vec )
{
std::cout << e << " ";
}
std::cout << '\n';
}
int main()
{
std::vector< int > vec = getNumbers();
// Print all elements in vector
printVector( vec );
// Min element
int minElement = findMinElement( vec );
std::cout << "Min element in vector: " << minElement << '\n';
// Max element
int maxElement = findMaxElement( vec );
std::cout << "Max element in vector: " << maxElement << '\n';
// Average elements
double average = countAverage( vec );
std::cout << "Average of vector elements: " << average << '\n';
// Count occur of digit 3
int numberOfDigit3 = countDigit3( vec );
std::cout << "Occur of digit 3 in vector: " << numberOfDigit3 << '\n';
// Sorted vector
std::vector< int > sortedNumbers = sort( vec );
std::cout << "Sorted vector:\n";
printVector( sortedNumbers );
// Median of vector
double median = calculateMedian( vec );
std::cout << "Median of vector elements: " << median << '\n';
// Three smallest numbers
std::vector< int > threeSmallest = getThreeSmallest( vec );
std::cout << "Three smallest numbers:\n";
printVector( threeSmallest );
// Three biggest numbers
std::vector< int > threeBiggest = getThreeBiggest( vec );
std::cout << "Three biggest numbers:\n";
printVector( threeBiggest );
// Squared values
std::vector< int > squaredVector = getSquareVector( vec );
std::cout << "Squared values in vector:\n";
printVector( squaredVector );
// Count even
int evens = countEven( vec );
std::cout << "Amount of even numbers: " << evens << '\n';
// Count odd
int odds = countOdd( vec );
std::cout << "Amount of odd numbers: " << odds << '\n';
// Divided by 3
int dividedBy3 = countDividedBy3( vec );
std::cout << "Amount of numbers divided by 3: " << dividedBy3 << '\n';
return 0;
}
Editor is loading...
Leave a Comment