|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
04.10.2021, 11:39 | #1 |
Новичок
Джуниор
Регистрация: 04.10.2021
Сообщений: 1
|
Изменить динамический массив на статический
/*Используя стек, решить следующую задачу.
Напечатать каждое слово текстового файла T в обратном порядке. Для реализации АТД Стек использовать массив */ #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <iostream> #include <string.h> using namespace std; const int MS=101; char stack[MS]={0}; int t=0; void PUSH(char y) { if(t==MS-1) {cout<<endl<<"The stack write operation is not possible. The stack is overfow"<<endl; system("PAUSE"); exit(0);} else{ t=t+1; stack[t]=y;} } char POP() { if(t==0) {cout<<"The stack write operation is not possible. The stack is empty"<<endl; system("PAUSE"); exit(0);} else{ t=t-1; return stack[t+1];} } struct Stack//Создаем структуру { char info; struct Stack *next; } *st=NULL; void _PUSH(char y)//добавляем элемент в стек { struct Stack *Tmp = new Stack; Tmp->info=y; Tmp->next=st; st=Tmp; } char _POP()//удаляем элемент из стека { char y; if(st==NULL) { cout<<"The stack write operation is not possible. The stack is empty"<<endl; system("PAUSE"); exit(0); } else { struct Stack *Tmp=st; st=Tmp->next; y=Tmp->info; delete Tmp; return y;} } int main() { FILE *fps; fps=fopen("T.txt", "r"); char *str; str=new char [MS]; int i; while(!feof(fps)) { cout<<"Input: \n"; fgets(str, MS, fps); for(i=0; str[i]!='\0'&& str[i]!='\n'; i++) { cout<<str[i]; } if(str[i]=='\n') cout<<endl; } delete (str); cout<<endl<<endl; cout<<"Output: \n"; rewind(fps);//перемещает указатель положения в файле на начало указанного потока //Реализация стека на массиве char c; while(!feof(fps)) { c=fgetc(fps); if(feof(fps)){while(t!=0) cout<<POP(); cout<<"\n";} if(c!=' ' && c!='\n') PUSH(c); if(t==0 & c!='\n') POP(); if(c=='\n'){while(t!=0) cout<<POP(); cout<<"\n";} if(c==' '){while(t!=0) cout<<POP(); cout<<" ";} } system("PAUSE"); fclose(fps); } |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сделать 2 массива вместе. Динамический и Статический | lalka123 | Общие вопросы Delphi | 0 | 11.12.2014 15:37 |
Статический массив Си | Newb1e | Помощь студентам | 3 | 18.06.2012 01:24 |
статический массив | IrinaSS | Общие вопросы C/C++ | 2 | 08.12.2010 19:31 |
статический ----> динамический . Помогите | nexUS1 | Помощь студентам | 2 | 29.12.2009 20:13 |
Как изменить статический приватный член класса?? | 3dgraph | Помощь студентам | 2 | 07.05.2009 20:06 |