2016-09-19 6 views
-4

Я пытаюсь написать программу, которая запрашивает у пользователя их рождение, а затем подсчитывает, сколько олимпиад пережил человек.Определение числа олимпиад, которые прошли через год рождения?

Например:

When were you born?: 1998 
You have lived through 4 olympiads. 

Математика заблуждение меня, и я чувствую, как полный идиот, не зная, как это сделать. Это то, что у меня есть до сих пор.

#include "stdafx.h" 
#include <iostream> 
using namespace std; 

int main() 
{ 
int birthyear = 0; // Declare our birthyear variable to store the users year of birth, we use int to declare the data as an integer. 
int olympiads = 4; // Declare our olympiads variable, used to help with the calculation of how many olympiads someone has lived through(One olympiad is the equivalent to 4 years). 
//int OlympiadsCalc = <MATH CALCULATION HERE>; 

cout << "In what year were you born?: "; // Using the cout() function, we get user input 
cin >> birthyear; // We store the users input into our variable birthyear 
cout << "You have lived for " << olympiads << " olympiads!" << endl; 
system("pause\n"); 
return 0; 
} 

Я просто не совсем понимаю, как я бы идти о расчете сколько интервалов 4 года не было от года рождения до сих пор.

+1

Подсказка: используйте целочисленное деление. Вам также нужно знать год, когда была проведена первая олимпиада. Теперь помните простую форму: do * not * попытайтесь понять это в своей голове. Возьмите лист бумаги, составите пример и попытайтесь понять, как его рассчитать, а затем обобщите на общий случай. – iksemyonov

+1

Это может быть более сложная проблема, чем простое разделение. Прежде всего, этот вопрос необходимо уточнить. Я предполагаю, что мы говорим о играх современной Олимпиады. Из них первые игры были проведены в 1896 году, но они не проводились каждые четыре года - два были отменены из-за Второй мировой войны. Кроме того, мы рассматриваем весь четырехлетний период или только продолжительность Олимпийских игр? Если кто-то родился через неделю после финальной церемонии, он подсчитывает? –

+0

@DavidAirapetyan: Термин «Олимпиада» (первоначально) используется для обозначения 4-летнего периода, а не самих олимпийских игр, и я бы подумал, что это то, что нужно OP. – einpoklum

ответ

-3

Во-первых, я полагаю, что «олимпиада» вы имеете в виду период 4 года, а не олимпийские игры на самом деле происходит (в противном случае ваша задача становится гораздо более сложным и включает в себя онлайн-запросов к источникам данных и т.д.)

Во всяком случае , у вас есть две проблемы:

  1. Получение текущего года. См. this answer здесь, в StackOverflow, о том, как это сделать с C/C++ (но обратите внимание, что C++ 11 имеет альтернативный подход, если это имеет для вас значение).

  2. Простой расчет: количество лет, в течение которых проживает человек, - текущий год минус год рождения; и полное количество олимпиад получается простым делением целого числа лет жизни пользователя по длине Олимпиады (4), округляя вниз. Я уверен, что вы справитесь с этим ...

Обратите внимание, что значения, которые вы инициализируете двумя переменными, не те, которые вы собираетесь использовать. значение 4 должно фактически быть константой, возможно, названной OlympiadLengthInYears (или years_in_an_olympiad или, как вам нравится называть его).

Смежные вопросы