[英]Program does not work (leading zeroes)
您必须编写一个迭代过程write_digit(d,x)来接收数字d和自然数x,并将x乘以数字d到标准输出(cout)中。 例如,调用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);
}
您完全使分配复杂化了,只做一个简单的循环而没有任何边沿条件,它将适用于任何数字,甚至适用于非数字。
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
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.