2015-08-03 3 views
-3

Мой учитель дал мне задание, где я должен написать код, который содержит только во время цикла и печатает:Возможно ли это, используя только цикл while?

 1 
     2 1 
    3 2 1 
    4 3 2 1 
5 4 3 2 1 

Я пробовал 100 раз и не в 100 раз. Из-за моих ограниченных знаний я начал думать, что мой наставник просто возится с моим мозгом. Если это возможно, сообщите мне код, который печатает номера в этом порядке. Благодаря ...

+5

Вы знаете, любое другое решение, чтобы напечатать эту картину, как с помощью 'for' цикл? Или вы можете показать какой-то код, который вы пробовали? – DhruvJoshi

+0

Являются ли эти пробелы перед числами умышленными? – DhruvJoshi

+0

Я еще не начал с циклов. –

ответ

1
int i = 1; 
    int LIMIT = 5; 
    while (i <= LIMIT) 
    { 
     int j = 1; 
     while (j <= LIMIT -i) //Loop to print the desired space. 
     { 
      cout << " "; 
      j++; 
     } 
     int k = i;    
     while(k) 
     { 
      cout<<k;    //Printing the digits 
      k--; 
     } 
     cout << endl;   //Adding new line character at the end. 
     i++; 
    } 

Скажи привет преподавателю :)

+0

Это сработало ... спасибо Нишанту. Конечно ... не говорите ему, что вы помогли. :-) –

-1

Попробуйте некоторый код, как показано ниже. я также создать рабочий образец кода здесь http://goo.gl/gJqias

#include <iostream> 

using namespace std; 

int main() 
{ 
int start_Index=1, maximum_Index=5; 
while(start_Index<=maximum_Index) 
{ 
    //below loop prints leading whitespaces 
    //note that there are two whitespaces per number 
    int temp_var=start_Index; 

    while (maximum_Index-temp_var>0) 
    { 
    cout <<" "; 
    temp_var++;//note the post increment operator. 
    } 

    //below whiel loop prints lagging numbers with single whitespace before them 
    temp_var=start_Index; 
    while(temp_var>0) 
    { 
     cout<<" "<<temp_var--;//note the post decrement operator. 
    } 
    //Now we start over to next line 
    cout<<endl;  
    //Increment the start_index by 1 
    start_Index++; 
} 
return 0; 
} 
+0

Это действительно привело к предписанному результату? Я ожидаю, что он будет печатать только 1. – skyking

+0

Тем не менее, это действительно привело к предписанному результату? Похоже, он напечатает 1, 12, 123 и так далее. – skyking

+0

Эй, небоскреб ... Я тоже гнездился, чтобы выполнить эту работу. Я определил два родительских цикла while, один из которых содержит время, которое отвечает за печать пробелов и второго родителя, а также дочерний элемент, ответственный за печать целых чисел. –

-1
int main(void) 
{ 
    char str[11] = "   ";// Filled with 10 blank spaces 
    int i=0; 
    while(i < 5) 
    { 
     str[9 - 2*i] = (i+1) + 48;// +48 will give equivalent ASCII code 
     printf("%s\n",str); 
     i++; 
    } 
    return 0; 
} 
+0

Почему этот ответ проголосовали? он компилирует и дает правильный результат. https://ideone.com/yA0doO –

+0

Не используйте магическое число, используйте '' 0''. – Jarod42

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