我寫了一個代碼,使用星號打印一個數字 - 無論是消極的還是積極的。我的程序從用戶的輸入中反轉數字,然後將它切成數字逐個打印,但不在同一行中。這裏是我的代碼:在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 –