Как запустить мой else, если цикл for начинается с 01 — 09?

#c

Вопрос:

Как мне сделать свой код специально на else, если распечатать это, если мой ввод равен 45?

01.02.03.04.05.06.07.08.09.10

11.12.13.14.15.16.17.18.19.20

21.22.23.24.25.26.27.28.29.30

31.32.33.34.35.36.37.38.39.40

41.42.43.44.45

 #include <iostream>
#include <string>
using namespace std;

int main() {
    string dot = "";
    int x;
    cin >> x;
    if (x<=10){
        for (int n=1; n<=x; n  ){
            cout << dot << n ;
            dot =".";
        }
    }
    else if(x>10amp;amp;x<=100) {
        for (int i = 1; i <=x;   i){
            for (int j = 1; j <=10;   j){
            cout << dot << x;
            dot=".";
            }
        cout << endl;
        }
    }
    else{
        cout << "OUT OF RANGE";
    }
   return 0;
}
 

Ответ №1:

Всю вашу программу можно упростить с помощью setw и setfill, чтобы выполнить за вас тяжелую работу по вставке нулевых символов там, где это необходимо. #include <iomanip> чтобы иметь доступ к этим функциям модификации потока.

 #include <iomanip>
#include <iostream>

using namespace std;

int main()
{
    int x;
    cin >> x;
    for (int i = 1; i <= x; i  )
    {
        cout << setw(2) << setfill('0') << i;
        char delimiter = ((i % 10) amp;amp; (i != x)) ? '.' : 'n';
        cout << delimiter;
    }
    cout << endl;

}
 

Ответ №2:

 #include <iomanip>
#include <iostream>

using namespace std;

int main()
{
    int x = 0;
    cin >> x;

    if (x > 100)
    {
        cout << "Out of range." << endl;
        return 0;
    }

    for (int i = 1; i <= x; i  )
    {
        cout << setfill('0') << setw(2) << i << ((i % 10) ? "." : "n");
    }
    return 0;
}
 

Комментарии:

1. Вместо ((i % 10) ? "." : "n") этого вы , вероятно, хотите ( ((i % 10) amp;amp; (i != x) ) ? "." : "n") , чтобы текст . не печатался после последнего целого числа.