first commit
This commit is contained in:
33
RecurringRainfall/Cpp/CMakeLists.txt
Normal file
33
RecurringRainfall/Cpp/CMakeLists.txt
Normal file
@@ -0,0 +1,33 @@
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
# Modify only these if one source file!
|
||||
project(CppRecurringRainfall)
|
||||
set(CURRENT_PROJECT_CODE_NAME recurringrainfall)
|
||||
set(FILE_EXT cpp)
|
||||
# End
|
||||
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_C_STANDARD_REQUIRED True)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
||||
|
||||
# We want all the warnings and as errors enabled
|
||||
if (MSVC)
|
||||
# warning level 4 and all warnings as errors
|
||||
add_compile_options(/W4 /WX)
|
||||
else()
|
||||
# lots of warnings and all warnings as errors
|
||||
add_compile_options(-Wall -Wextra -pedantic -Werror)
|
||||
endif()
|
||||
|
||||
add_executable(${CMAKE_PROJECT_NAME} ${CMAKE_CURRENT_LIST_DIR}/${CURRENT_PROJECT_CODE_NAME}.${FILE_EXT})
|
||||
|
||||
target_include_directories(${CMAKE_PROJECT_NAME} PUBLIC
|
||||
${EXTRA_INCLUDES}
|
||||
)
|
||||
|
||||
target_link_libraries(${CMAKE_PROJECT_NAME} PUBLIC
|
||||
${EXTRA_LIBS}
|
||||
)
|
||||
|
||||
|
||||
54
RecurringRainfall/Cpp/recurringrainfall.cpp
Normal file
54
RecurringRainfall/Cpp/recurringrainfall.cpp
Normal file
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
Write a program that will read in integers and
|
||||
output their average. Stop reading when the
|
||||
value 99999 is input.
|
||||
|
||||
Example program output/input:
|
||||
Enter int: 0
|
||||
Average: 0
|
||||
Enter int: 2
|
||||
Average: 1
|
||||
...
|
||||
Enter int: 99999
|
||||
*/
|
||||
|
||||
#include <iostream>
|
||||
#include <limits>
|
||||
|
||||
int main()
|
||||
{
|
||||
float currentAverage = 0;
|
||||
unsigned int currentEntryNumber = 0;
|
||||
|
||||
for (;;)
|
||||
{
|
||||
int entry;
|
||||
|
||||
std::cout << "Enter rainfall int, 99999 to quit: ";
|
||||
std::cin >> entry;
|
||||
|
||||
if (!std::cin.fail())
|
||||
{
|
||||
if (entry == 99999)
|
||||
{
|
||||
std::cout << "User requested quit." << std::endl;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
currentEntryNumber++;
|
||||
currentAverage = currentAverage + (1.0f/currentEntryNumber)*entry - (1.0f/currentEntryNumber)*currentAverage;
|
||||
|
||||
std::cout << "New Average: " << currentAverage << std::endl;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cout << "Invalid input" << std::endl;
|
||||
std::cin.clear();
|
||||
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user