创建一个增加1的while循环

时间:2016-03-05 01:16:28

标签: c++ while-loop

以下是我的提示:

使用变量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

有人可以指导我正确指导我做错了吗?

2 个答案:

答案 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

我希望它有所帮助。