2016-11-14 2 views
-6

Я новичок, и я должен напечатать букву «N» из #. До сих пор я могу печатать только \ |, поэтому я все еще пропускаю последнюю «ногу». Я действительно не знаю, как я дошел до этого. Если кто-нибудь может мне помочь или объяснить! Вот мой код:Печать большой буквы N с #

#include <iostream> 
using namespace std; 

int main() 
{ 

    int i, j; 

    for (i = 1; i <= 9; i++) 
    { 
     cout << "#"; 
     for (j = 1; j <= 12; j++) 
     { 
      if (i == j) 
      { 
       cout << "#"; 
      } 
      else 
      { 
       cout << " "; 
      } 
     } 

     cout << endl; 
    } 

    return 0; 
} 
+0

Вам нужно напечатать '#' в конце каждой строки. Если вы посмотрите на свой код, вы должны найти, где вы заканчиваете линии. Вам просто нужно это изменить. – NathanOliver

ответ

4
for (i = 1; i <= 9; i++) //prints one line at a time 
{ 
    cout << "#"; 
    for (j = 1; j <= 9; j++) 
    { 
     if (i == j) 
     { 
      cout << "#"; //Diagonal part 
     } 
     else 
     { 
      cout << " "; 
     } 
    } 
    cout << "#"; // <<< You missed this 

    cout << endl; 
} 

Маленький более элегантный (используя только один for -loop):

for (i = 1; i <= 9; i++) 
{ 
    string s = "#"; 
    s.append(i-1, ' '); 
    s +='#'; 
    s.append(9-i, ' '); 
    s +='#'; 
    cout << s << endl; 
} 
1

я пошел бы на пути «Cheeting» печать точную вещь без коверкая с петлями.

cout << "##  #" << endl 
cout << "# #  #" << endl 
cout << "# # #" << endl 
cout << "# # #" << endl 
cout << "# # #" << endl 
cout << "#  # #" << endl 
cout << "#  ##" << endl 

простой как пирог.

+0

Вы сделали мой день – Treycos

-1
for(int y=0; y<9;y++){ 

    for(int i=0; i<9; i++){ 

    if((i==8&&y==0) or(i==8&&y==8)){std::cout<<" ";} 

    if(i==0 or i==8){std::cout<<"#";}else{std::cout<<" ";}; 

    if(i>0 && i<8){if(i==y){std::cout<<"#";std::cout<<" ";}else{std::cout<<" ";};}; 

    };std::cout<<"\n";}; 
+0

совершенная диагональ: D –

Смежные вопросы