Форум программистов

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Форум программистов (https://programmersforum.ru/index.php)
-   Visual C++ (https://programmersforum.ru/forumdisplay.php?f=51)
-   -   Разработать программу, которая вводит фактические данные из таблицы (https://programmersforum.ru/showthread.php?t=343667)

Thhhhhh 19.09.2022 20:05

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

#include <iostream> // подключаем директивы препроцессора
#include <conio.h>
#include <stdio.h>
using namespace std;
int main() // главная функция
{
    char avtorkn[3][10], nazvanie[3]; // объявление переменных
    int godvipuska[3];
    float gruppa[3];
    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";
    }
    // очистка экрана перед выводом таблицы
    printf("|------------------------------------------------------|\n");
    printf("| Каталог библиотеки                                  |\n");
    printf("|------------------------------------------------------|\n");
    printf("|  avtorkn  |  nazvanie  | godvipuska | gruppa        |\n"); //выводим шапку таблицы
    printf("|------------------------------------------------------|\n");
    for (int 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
}


macomics 19.09.2022 20:13

Самое очевидное, что надо задавать правильные типы данных. У вас в 1 символ помещается название, а в вещественную переменную записывается тип - символ (Х|У|С). Это не удивительно. Задание сформулировано по шаблону и входные данные изменены. Под них надо подстроиться.


18:40.