我只是遇到了这个节目的问题。我已经工作了5天,仍然没有雪茄。正在进行的是我正在尝试做变戏法序列并且我的计算是正确的,我现在遇到的问题是每次我进行计算时相同的数字都会保持打印而我无法将其输出全部1行的数字。如果有人可以帮助那将是伟大的。谢谢!
输出应该是这样的,但是我无法得到它。
#include <iostream>
#include <string>
#include <iomanip>
#include <cmath>
using std::cout;
using std::cin;
using std::endl;
using std::setw;
/*
*
*/
int main(){
long user_int = 0;
long end_int = 0;
long counter = 0;
long int_per_line = 0;
long user_ans = 0;
cout << "Enter two separate numbers, check from low to high " << endl;
cout << "Input 1st integer: ";
cin >> user_int;
cout << "Input 2nd integer: ";
cin >> end_int;
counter = user_int - 1;
long end_start = end_int - user_int;
cout << "Do you want to see each sequence (1=yes/0=no): ";
cin >> user_ans;
while(user_ans == 1){
for(long i = 0; i <= end_start; i++){
if(user_int % 2 == 0){
user_int = pow(user_int, 0.5);
user_int = floor(user_int);
}
else{
user_int = pow(user_int, 1.5);
user_int = floor(user_int);
}
}
}
while (long i=0 <= end_start){
counter = counter + 1;
if(user_int != 1)
cout << "Juggler sequence of " << counter << " is:" << user_int << endl;
i = i + 1;
}
cout << "Do you want to see each sequence (1=yes/0=no): ";
cin >> user_ans;
return 0;
}
答案 0 :(得分:1)
当代码第一次进入时,它会打印一些内容,end_int
最终会成为end_start - 1
。然后它将永远不会进入下一个for循环。
顺便说一下,return 0;
也在错误的地方。
一些建议:
编写一个名为void PrintJugglerSeq(int num)
的函数,它将为输入num
打印一个玩杂耍的序列。
按如下方式组织您的代码:
while (true) {
read user input
if no break;
read two numbers (low and high)
iterate counter from low to high {
call PrintJugglerSeq(counter)
}
}