Перевести программу из C++ в Си - C (СИ) (77253)
Формулировка задачи:
#include <cstdio> #include <cstdlib> #include <iostream> #include <string.h> using namespace std; class NameDataSet { public: char szName[128]; // указатель на следующую запись в списке NameDataSet* pNext; }; // указатель на первую запись списка NameDataSet* pHead = 0; // добавление нового члена в список void add(NameDataSet* pNDS) { pNDS->pNext = pHead; // заголовок указывает на новую запись pHead = pNDS; } // чтение имени NameDataSet* getData() { // читаем имя char nameBuffer[128]; cout << "\nEnter name:"; cin >> nameBuffer; // усли "exit" - выход if ((stricmp(nameBuffer, "exit") == 0)) { return 0; } // новая запись для заполнения NameDataSet* pNDS = new NameDataSet; // заполнение поля имени и обнуление указателя strncpy(pNDS->szName, nameBuffer, 128); pNDS->szName[127] = '\0'; pNDS->pNext = 0; // возврат адреса созданного объкта return pNDS; } int main(int nNumberofArgs, char* pszArgs[]) { cout << "Read names of students\n" << "Enter 'exit' for first name to exit\n"; // создание объекта NameDataSet NameDataSet* pNDS; while (pNDS = getData()) { // добавление в конец списка add(pNDS); } cout << "Entries:\n"; pNDS = pHead; while(pNDS) { // вывод текущей записи cout << pNDS->szName << "\n"; // получение следующей записи pNDS = pNDS->pNext; } system("PAUSE"); return 0; }
Решение задачи: «Перевести программу из C++ в Си»
textual
Листинг программы
struct NameDataSet { char szName[128]; NameDataSet* pNext; } parampampam; // готовая переменная struct NameDataSet *foo, bar; // объявление переменных struct NameDataSet ( struct NameDataSet ); // прототип функции, возвращающей структуру // NameDataSet и принимающей в качестве аргумента // такую же структуру
Объяснение кода листинга программы
- Структура
NameDataSet
объявлена с двумя полями:szName
типаchar
с длиной в 128 символов иpNext
типаNameDataSet*
. - Переменная
parampampam
типаNameDataSet
инициализирована. - Объявлены две переменные
foo
иbar
типаNameDataSet*
. - Прототип функции
NameDataSet NameDataSet(struct NameDataSet)
объявлен. Эта функция возвращает структуруNameDataSet
и принимает в качестве аргумента такую же структуру. Список не содержит более 20 элементов, как указано в условии.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д