
C/C++
Сделать вывод результата в таблице. С++.
Вот так должен выглядеть вывод.
Можете использовать любые переменные (fio,mark1,mark2,average), я поменяю все в коде. Мне нужна именно такая таблица. Не используйте чат gpt, он пишет неровную таблицу.

Я хз, в каком формате в программе лежат данные. Но для вывода таких строк можно использовать сишный printf:
В C++'20 есть аналог printf, работающий со стримами, а в более ранних версиях языка - только через сишные вызовы.
Есть, конечно, Путь Страуструпа (всякие там setw, setprecision), но это - для мазохистов, по-моему. Абсолютно не наглядно и громоздко.
// шапка
printf("|%11s%9s| 1 | 2 | 3 | 4 | 5 | СР.БАЛЛ |\n", "ФИО", "");
// строка
printf("|%20s|%2d |%2d |%2d |%2d |%2d |%7.2f |\n", fio, m1, m2, m3, m4, m5, ma);
Ну, а линии можно набить вручную или в цикле. char horiz_line[52];
for (size_t i = 0; i < 51; i++) horiz_line[i] = '-';
horiz_line[51] = '\0';
И выводить как-то так: puts(horiz_line);
printf("%s\n", horiz_line);
В C++'20 есть аналог printf, работающий со стримами, а в более ранних версиях языка - только через сишные вызовы.
Есть, конечно, Путь Страуструпа (всякие там setw, setprecision), но это - для мазохистов, по-моему. Абсолютно не наглядно и громоздко.
#include
#include
#include
#include
#include
#include
using namespace std;
struct Student {
Student() = delete;
explicit Student(const size_t count) : count(count) {
exams.resize(count);
}
Student(const vector& exams, const string& name)
: exams(exams), name(name), count(exams.size()) {
}
vector exams;
string name;
double average()const {
return accumulate(exams.begin(), exams.end(), 0.0) / exams.size();
}
private:
size_t count;
friend istream& operator>>(istream& inp, Student& s) {
cout exam;
}
inp.ignore(0x1000, '\n');
return inp;
}
friend ostream& operator
Бауржан Сагитов
Основная трудность выравнивания строк, содержащих русский текст, состоит в том, что реальное количество байт в строке не совпадает с количеством символов, отчего возникают всякие перекосы, в том числе в ответе Папы.
Вот мой вариант, всякие чудесные плюсы и минусы в задаваемой ширине как раз обусловлены вышеприведённой проблемой.
Вот мой вариант, всякие чудесные плюсы и минусы в задаваемой ширине как раз обусловлены вышеприведённой проблемой.
#include
#include
using namespace std;
const int count_marks = 5;
struct {
string fio;
int marks[count_marks];
float average;
}
persons[] = {
{ "Колотин", { 2, 3, 4, 5, 3 }, 3.4 },
{ "Иванов", { 3, 4, 4, 4, 3 }, 3.6 },
{ "Петров", { 4, 4, 4, 5, 5 }, 4.4 }
};
int main()
{
const int FIO_field_width = 17; // Ширина поля ФИО
const int AS_field_width = 9; // Ширина поля " СР.БАЛЛ " (с учётом пробелов)
cout
Александр Мирошниченко
Не скопировалась первая строчка:
#include
Похожие вопросы
- Создание таблицы в консоли вывода программы. С++
- C++ Вычислить и вывести на экран в виде таблицы
- Язык С, хэш-таблица.
- Напишите программу, которая выводит таблицу факториалов от 1 до 10. c++
- Создание таблицы в C++
- Вывести на экран набор чисел в виде таблицы. Между столбиками по два пробела. Столбики должны быть выровнены.
- Текст вывода не меняется с++
- Как вывести дробный результат в Proteus из скрипта на C (ATMega16)?
- Перегрузка операторов ввода-вывода для файловых потоков
- Неправильный вывод программы C++