我写了一个代码,使用星号打印一个数字 - 无论是消极的还是积极的。我的程序从用户的输入中反转数字,然后将它切成数字逐个打印,但不在同一行中。这里是我的代码:在C++中使用星号绘制数字
#include <iostream>
using namespace std;
int main() {
int n, i = 0, reverse = 0, digit;
cout << "Enter an integer:";
cin >> n;
cout << endl;
if(n < 0){
cout << "--"<<endl;
n = n - 2*n;
}
while(n > 0){
reverse = reverse*10 + n%10;
n = n/10;
}
while(reverse > 0){
digit = reverse % 10;
reverse = reverse/10;
if(digit == 0){
cout << "***"<<endl;
cout << "* *"<<endl;
cout << "***"<<endl;
cout << endl;
}
if(digit == 1){
cout << " * "<<endl;
cout << "** "<<endl;
cout << "***"<<endl;
cout << endl;
}
if(digit == 2){
cout << "** "<<endl;
cout << " * "<<endl;
cout << " **"<<endl;
cout << endl;
}
if(digit == 3){
cout << "***"<<endl;
cout << " **"<<endl;
cout << "***"<<endl;
cout << endl;
}
if(digit == 4){
cout << "* *"<<endl;
cout << "***"<<endl;
cout << " *"<<endl;
cout << endl;
}
if(digit == 5){
cout << " **"<<endl;
cout << " * "<<endl;
cout << "** "<<endl;
cout << endl;
}
if(digit == 6){
cout << "* "<<endl;
cout << "***"<<endl;
cout << "***"<<endl;
cout << endl;
}
if(digit == 7){
cout << "***"<<endl;
cout << " *"<<endl;
cout << " *"<<endl;
cout << endl;
}
if(digit == 8){
cout << "***"<<endl;
cout << "***"<<endl;
cout << "***"<<endl;
cout << endl;
}
if(digit == 9){
cout << "***"<<endl;
cout << "***"<<endl;
cout << " *"<<endl;
cout << endl;
}
}
}
我很好奇,如果有在同一行中打印的号码任何可能的方式,如果没有任何数字,有可能是一个固定的数字,为前:一个3位数字或4位数字? p.s.如果有任何简单的方法(只使用循环,当然(if-else)),不要写完整的代码,只提示。
当心,功课来了。 :P –
构建成3个'std :: string',最后打印出来。 – Jarod42
@斯巴达克斯的确如此:P,它是一项功课,但我不是要求解决方案:D –