У меня есть последовательность чисел, которая разбивается на строки. Кол-во строк зависит от кол-ва чисел(выбирается рандомно в диапазоне от 1 до 10) в одной строке. И все эти числа нужно выровнять по правому краю. Я узнал, как это реализовать - с помощью setw(). Но у меня некорректно выравниваются числа. В чем ошибка, подскажите, пожалуйста.
Код C++:
#include <iostream>
#include <iomanip>
#include <string>
#include <cmath>
#include <ctime>
#include <fstream>
#include <iomanip>
using namespace std;
void Number1(int n, int m)
{
int x = n / m;
int y = n % m;
if (y == 0) {
for (int i = 0; i < x; ++i)
{
cout << endl;
for (int j = 0; j < m; ++j)
{
cout << setw(230) << rand() % 201 - 100 << " ";
}
}
}
else {
for (int i = 0; i < x; ++i)
{
cout << endl;
for (int j = 0; j < m; ++j)
{
cout << setw(230) << rand() % 201 - 100 << " ";
}
}
cout << endl;
for (int k = 0; k < y; k++)
{
cout << setw(230) << rand() % 201 - 100 << " ";
}
cout << endl;
}
}
int main()
{
setlocale(LC_ALL, "Russian");
srand(time(0));
//Number1
int n;
cout << "Введите кол-во чисел = ";
cin >> n;
cout << endl;
int m = rand() % 11;
cout << "Кол-во чисел в строке = " << m << endl;
cout << endl;
Number1(n, m);
}
Скриншот результата:
Они как-то косо расположены :(
std::ostringstream line;
for (int j = 0; j < m; ++j) {
line << (j? " " : "") << rand() % 201 - 100;
}
std::cout << std::setw(230) << line.str() << '\n';
(j? " " : "")
, в принципе, можно заменить на один безусловный пробел, это я уж для красоты добавил.
void Number1(int n, int m)
{
int x = n / m;
int y = n % m;
if (y == 0) {
for (int i = 0; i < x; ++i)
{
cout << endl;
for (int j = 0; j < m; ++j)
{
cout << setw(230) << rand() % 201 - 100 << endl;
}
}
}
else {
for (int j = 0; j < m; ++j)
{
cout << setw(230) << rand() % 201 - 100 << endl;
}
cout << endl;
for (int k = 0; k < y; k++)
{
cout << setw(230) << rand() % 201 - 100 << endl;
}
cout << endl;
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Допустим имеется слово "элемент"(слово может быть любым), нужно циклически сдвинуть слово вправо на "n" символовНапример, на 3 символа...
Есть вот такой кодНемного непонятно, что делает второй цикл while
Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском
Нужно реализовать клиент-серверное приложение для обмена сообщениями между компьютерами (простой чат), используя при этом UDP пакеты и только...