以下是我的提示:
使用变量i编写一个while循环,将1打印到userNum。 用空格跟随每个数字(甚至是最后一个)。假设userNum为正数。
Ex:userNum = 4打印: 1 2 3 4
我已经尝试了一些东西,下面是我到目前为止的代码:
#include <iostream>
using namespace std;
int main() {
int userNum = 0;
int i = 0;
userNum = 4; // Assume positive
cout<<("userNum = %d\n",userNum);
while(i != userNum) {
i++;
cout<<("%d",i);
}
cout << endl;
return 0;
}
输出接近什么需要,但它不正确,我似乎无法弄清楚我做错了什么。
输出为41234
有人可以指导我正确指导我做错了吗?
答案 0 :(得分:1)
这个的基本机制是这样的:
#include <iostream>
int main() {
int i = 0;
int userNum = 0;
userNum = 4;
while(i < userNum) {
++i;
std::cout<<i<<" ";
}
}
输出:
1 2 3 4
如果您愿意,可以自然地将userNum
初始化为cin
。
答案 1 :(得分:1)
问题在于这一行:cout<<("userNum = %d\n",userNum)
。
cout不支持这样的格式。这导致了一种奇怪的行为:它跳过了userNum =
部分,只是将userNum
打印为int值,这是输出中的第一个数字4
。
请尝试考虑以下代码:
#include <iostream>
using namespace std;
int main() {
int userNum = 0;
int i = 0;
userNum = 4; // Assume positive
cout << "userNum = " << userNum << endl;
while (i != userNum) {
i++;
cout << i;
}
cout << endl;
return 0;
}
输出
userNum = 4
1234
链接1 - cplusplus.com - basic input/output
链接2 - SOF
我希望它有所帮助。