程序不起作用(前导零)

Posted

技术标签:

【中文标题】程序不起作用(前导零)【英文标题】:Program does not work (leading zeroes) 【发布时间】:2016-10-16 10:56:15 【问题描述】:

您必须编写一个迭代过程 write_digit(d,x),它接收一个数字 d 和一个自然数 x,并在标准输出 (cout) 中写入数字 d 的 x 倍。例如,调用 write_digit(3,5) 写入 33333,而调用 write_digit(5,3) 写入 555。

我对这段代码有疑问,它与前导零有关。例子: write_digit(0,3) -> 000 -> 我的输出:0(不足为奇)

如果允许我使用 iomanip,问题将在 1 分钟内解决

if (d == 0) cout << setw(x) << setfill('0') << "";

但是,我只能使用 iostream 和字符串。

#include <iostream>

using namespace std;

void write_digit(int d,int x) 
    int original_d = d; 
    for (int i = 1; i < x; ++i) d = d*10 + original_d;
    if (x == 0) cout << "";
    else cout << d;


int main () 
    int d,x;
    cin >> d >> x;
    write_digit(d,x);

【问题讨论】:

【参考方案1】:

您完全使分配过于复杂,只需制作一个没有任何边缘条件的简单循环,它适用于任何数字,甚至适用于非数字。

void write_digit(int d, int x) 
    for (int i = 0; i < x; ++i) // Loop x times
        std::cout << d;         // Output digit
    std::cout << '\n';          // Output newline

【讨论】:

完全忘记了这种可能性,我傻了。

以上是关于程序不起作用(前导零)的主要内容,如果未能解决你的问题,请参考以下文章

不带前导零的日期时间对象

用“零”填充数组-memset()不起作用-[关闭]

删除一对零或一个子记录不起作用

Facebook 登录不起作用,错误:无效的 Oauth 访问令牌。它总是零

PL/SQL Oracle 正则表达式对于零的出现不起作用

Vue.js v-for 循环遍历数组不起作用(非零长度的零元素)