哪种最简单的方法是递增地将数字加到自身,直到达到某个条件?在下面的代码中,我们可以通过简单地将event_occurence添加到事件本身,直到到达max_events,来计算事件何时发生。我知道使用std::IOTA和向量可以做到这一点,但我希望它尽可能地保持最简单的数学运算。
我的想法是使用: i=1,i*要相乘的数字,对于i<=some值,i++。但只有第一个值正确递增。
int main()
{
int curent_year = 2021;
int input_year;
int event_occurence = 4;
std::cout << "When did you watch your first World Cup?" << std::endl;
std::cin >> input_year;
int max_events = (curent_year - input_year) / event_occurence;
int last_event = input_year + (max_events * event_occurence);
int next_first_event = input_year + event_occurence;
std::cout << "Next world cup was held in " << next_first_event << "... Meanwhile, another " << max_events << " world cups took place. The last world cup took place in " << last_event <<"." << std::endl;
int i=1;
int inbetween_events = input_year + i * event_occurence;
for (int i = 1; i <= max_events; i++)
std::cout << "The were also these worlds cups held in the following years: " <<inbetween_events <<std::endl;
} 发布于 2021-09-15 12:30:13
int i=1;
int inbetween_events = input_year + i * event_occurence;
for (int i = 1; i <= max_events; i++)
std::cout << "The were also these worlds cups held in the following years: " <<inbetween_events <<std::endl;
} 问题1:您正在使用一个局部变量(在CPU寄存器中计数),该变量的名称与function for (...)的父变量的名称相同。你可以在这里声明"int = 1",意思是"make new temp variable name i,value =1“。
移动"calc“
int inbetween_events = input_year + i * event_occurence;如果您想打印出一系列数字(print inbetween_events = input_year +i* event_occurence;),或者
for (; i <= max_events; i++) 或
for (i = 1; i <= max_events; i++)这可以工作,但我不能测试它:,你可以改变变量的名称,但它仍然是非常无效的,因为你会在循环中增加一个变量,进行两次操作而不是一次操作。
问题2:你也没有在"for“循环中增加"inbetween_events”。你要求它打印出那个变量"i“次。你把这个变量初始化为算术运算的输出,它不会改变它的值,除非你命令它改变它。
https://stackoverflow.com/questions/69192706
复制相似问题