Разработать программу, которая вводит фактические данные из таблицы

В соответствии с заданием определяем, что вводу подлежит содержимое таблицы, затем введенные данные упорядочиваются и выводятся на экран в виде представленной таблицы. Данные легче организовать в виде массивов следующих типов: строковый (наименование вещества), символьный (тип вещества), целочисленный (температура), вещественный (скорость). Ввод массивов желательно организовать с помощью операторов цикла (смотри следующую тему). Исходя из вышесказанного составим программу ввода данных разных типов и упорядоченного вывода на экран.
Скорость звука в жидкостях
Каталог библиотеки
Автор книги Название Год выпуска Группа
Сенкевич / Потоп/ 1978/ Х
Ландау / Механика/ 1989/ У
Дойль / Сумчатые / 1990/ С

Примечание: Х - художественная литература; У - учебная литература; С - справочная литература
Можете помочь с заданией, я попробовал решить но что то не получается

#include <iostream> // подключаем директивы препроцессора
#include <conio.h>
#include <stdio.h>
using namespace std
main() // главная функция
{
	char avtorkn[3][10], nazvanie[3]; // объявление переменных
	int godvipuska[3];
	float gruppa[3];

	clrscr();
	for (int i = 0; i < 3; i++) // ввод данных с помощью цикла
	{
		cout << "Введите автор книги  " << i + 1 << "  ";  // запрос
		cin >> avtorkn[i];                                                 // ввод
		cout << "Введите название  " << i + 1 << "  ";
		cin >> nazvanie[i];
		cout << "Введите год выпуска  " << i + 1 << "  ";
		cin >> godvipuska[i];
		cout << "Введите группу  " << i + 1 << "  ";
		cin >> gruppa[i];
		cout << "-------------\n";
	}
	clrscr(); // очистка экрана перед выводом таблицы
	printf("|------------------------------------------------------|\n");
	printf("| Каталог библиотеки                                   |\n");
	printf("|------------------------------------------------------|\n");
	printf("|  avtorkn  |   nazvanie  | godvipuska | gruppa    |\n"); //выводим шапку таблицы
	printf("|------------------------------------------------------|\n");
	for (i = 0; i < 3; i++)  // вывод данных через циклический оператор
	{
		printf("|%-13s|%-8c|%12d|%9.2f|\n", avtorkn[i], nazvanie[i], godvipuska[i], gruppa[i]); // выводим и 
		//выравниваем данные с учетом ширины полей каждого 
		//столбца в шапке и типов данных
		printf("|------------------------------------------------------|\n");
	}
	getch();   // задержка экрана
	return 0; // функция вовращает 0 
}

что именно?

не получается то, что вообще таблицу не правильно показывает. То есть код не правильный, но никак не нашла ошибку

Для ввода строк обычно getline надо использовать.
И массив названий тут объявлен как массив из 3 символов.
И почему группа это число, да еще и не целое?

И зачем писать такие бесполезные комменты?) Комменты обычно пишут, чтобы пояснить что-то неочевидное (почему что-то сделано именно таким способом и т.д.), а не для пересказа строк кода.

Потому что код либо был откуда то взят и кто то проставил комментарии чтобы было ясно.
Либо делалось на заказ и исполнитель прописал так чтобы заказчик хоть как то понимал общую суть.

А мне вот кажется что код правильный. В нем нету ошибок.