Дан код программы на C++, перевести этот код на C - C (СИ)
Формулировка задачи:
#include <iostream> #include <windows.h> #include <string.h> using namespace std; HANDLE hConsole=GetStdHandle(STD_OUTPUT_HANDLE); struct Avto { char marka[10]; }; struct Stek { Avto a; Stek *next; }; char bufer [255]; char*rus (char*s) { CharToOem (s,bufer); return bufer; } void vvod(Avto &x) { cin>>x.marka; } void Print(Stek *u) { int k=0; Stek *p = u; if(p==0) { cout<<rus("\nВ Гараже НЕТ машин!!!")<<endl; return; } while(p) { p->a.marka; p = p->next; k++; } cout<<rus("\n\tВ гараже "); if(k<5) cout<<k<<rus(" машины")<<endl; else cout<<k<<rus(" машин")<<endl; p = u; SetConsoleTextAttribute(hConsole, 11); cout<<rus("\n ГАРАЖ:")<<endl; while(p) { cout<<"\t* "; cout << p->a.marka<<endl; p = p->next; } cout<<"\t********"<<endl; SetConsoleTextAttribute(hConsole, 7); } void dobavlenie(Stek **u, Avto &x) { Stek *t=new Stek; strcpy(t->a.marka,x.marka); t->next=*u; *u=t; } bool Zabiraem(Stek**u, Avto &x) { if(*u==NULL) { return false; } Stek*t=*u; strcpy(x.marka, t->a.marka); *u=t->next; delete t; return true; } void vyezjaet_iz_garaja(Stek**u) { Stek *v=NULL; Avto x; char n[7]; cout<< rus("\n\t Введите машину, которая выезжает:"); cin>>n; while(*u) { if(Zabiraem(u,x)) { if(strcmp(n, x.marka)==0) { cout<< rus(" машина ") << n; cout<<rus(" уехала!!!"); while(Zabiraem(&v, x)) /// возвращаем элементы из стека V в стек U dobavlenie(u, x); return; } else { dobavlenie(&v, x); } } else break; } SetConsoleTextAttribute(hConsole, 12); cout <<rus(" В гараже НЕТ машины ")<<n<<endl; SetConsoleTextAttribute(hConsole, 7); while(Zabiraem(&v,x)) dobavlenie (u,x); } void Clear(Stek **u) { if(*u == 0) return; Stek *p = *u; Stek *t; while(p) { t = p; p = p->next; delete t; } *u = 0; } int main() { SetConsoleTextAttribute(hConsole, 7); cout << "\n" << endl; Stek *u=NULL; int n; Avto x; //переменная x типа avto do { SetConsoleTextAttribute(hConsole, 14); cout<<rus(" ***********************\n * \tМеню:")<<endl; cout<<rus(" * 1. Приехала новая машина")<<endl; cout<<rus(" * 2. Печатать гараж")<<endl; cout<<rus(" * 3. Машина выезжает")<<endl; cout<<rus(" * 0. Выход")<<endl; cout<<rus(" ***********************")<<endl; cout<<rus("\n\tЗадайте действие: "); cin>>n; SetConsoleTextAttribute(hConsole, 7); switch (n) { case 1: cout<<rus("Введите новое авто: "); vvod(x); dobavlenie(&u, x); cout<<rus("\nАвто Добавлено!\a\n"); break; case 2: Print(u); break; case 3: Print(u); vyezjaet_iz_garaja(&u); break; case 0: Clear(&u); break; default: SetConsoleTextAttribute(hConsole, 12); cout<<rus("Нет такого ЧИСЛА!!!")<<endl; SetConsoleTextAttribute(hConsole, 7); } cout<<endl; } while (n!=0); return 0; }
можно без использования графики
Решение задачи: «Дан код программы на C++, перевести этот код на C»
textual
Листинг программы
scanf("%s", x.marka);
Объяснение кода листинга программы
- Код программы начинается с объявления переменной
x
типамарка автомобиля
(предположительно структура или класс) - Затем происходит считывание строки с помощью функции scanf в переменную
x.marka
(предполагается, чтоmarka
это поле структурыx
) - Значение переменной
x.marka
не указано в вопросе, поэтому предполагается, что это строка, которая содержит название марки автомобиля - Оставшиеся действия программы, если они есть, не указаны в вопросе, поэтому предполагается, что код на этом заканчивается
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д