Untitled
unknown
c_cpp
a year ago
6.0 kB
6
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