Как мы можем получить доступ к выводу, как показано ниже? (Номер-Астерикс знак) - PullRequest
0 голосов
/ 07 мая 2019

Я пишу код на C ++, который должен иметь следующий вывод:

1 ******

12 *****

123 ****

1234 ***

12345 **

123456 *

1234567

Я сделал отображение целых чисел, но проблемаэто пара звездочек, подписывающих их.

Вот код:

#include<iostream>
using namespace std;
int main () {
    int i,j;
    for(int i=1;i<8;i++) {
        for(int j=1;j<=i;j++){

    cout<<j; 
    } cout<<endl;}

return 0;
}

Спасибо. Это вывод процесса, который я выполнял до.

1 Ответ

2 голосов
/ 07 мая 2019

Вот ответ на вашу проблему, но я думаю, что вы должны сначала подумать о решении, прежде чем взглянуть на ответ.

Вот несколько советов для вашего ответа:

  1. Попробуйте подумать о том, как вы печатаете 1, 12, 123 и как это работает наоборот (123,12,1)
  2. Замените число чистым символом или строкой: '' или ""
  3. Подумайте, где вы должны поставить свой код
  4. Проверьте его
  5. Если это не тот результат, который вам нужен, но достаточно близкий, попробуйте изменить секцию кода for([initialization];[end condition];[incremental])

А также вот несколько советов о вашем будущем пути программирования:

  1. Не используйте using namespace std;, на данный момент это может быть удобно, но это плохая практика - использовать его в своем коде.
  2. Использовать начальный индекс с 0. Эта практика может помочь вам легко выполнить цикл по массиву, списку, вектору и любой другой структуре данных, которая работает как массив ( IEnumerable в .NET ).
  3. Вы уже инициализировали целое число внутри цикла for, поэтому на самом деле вы можете опустить секцию кода int i,j;

Ответ:

#include <iostream>
int main () {
    for(int i=0;i<7;i++) {
        for(int j=0;j<=i;j++)
            std::cout<<j+1; 
        for(int k=0;k<(7-(i+1));k++)
            std::cout<<"*";
        std::cout<<std::endl;
     }
return 0;
}
...