#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")
, чтобы текст.
не печатался после последнего целого числа.