![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Tri |
![]()
Сообщение
#1
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 94 Регистрация: 26.10.2007 Город: Тюмень Учебное заведение: ТГНГУ Вы: студент ![]() |
Составить программу, которая считывает произвольный текст и распечатывает в алфавитном порядке все латинские буквы, входящие в этот текст. В качестве основной структуры данных использовать стек.
Я совсем недавно начала изучать ООП, так что работу с классами совсем не знаю, у меня компил. ругается как раз на классе (IMG:style_emoticons/default/unsure.gif) Посмотрите, пожалуйста, моё решение. Код // 2_1.cpp : Defines the entry point for the console application. #include "stdafx.h" #include <fstream> #include <iostream> #include <string> #include <cstring> #include <stdlib.h> using namespace std; class Stack {private: static const int MAX = 80; int st[MAX]; int top; public: Stack( ); {top=0;} void push (int var) {st[++top]=var;} int pop( ) {return st[top--];} }; int _tmain(int argc, _TCHAR* argv[]) {Stack s1; const int MAX=80; char buffer[3][MAX]; int i=0; int x,j,dlina,k;char z; ifstream infile("input.txt"); while (!infile.eof()) {infile.getline(buffer[i],MAX); cout << buffer[i] << endl; i++; //считали данные в массив строк }; k=0;dlina=0; for (i=0;i<3;i++) {x=strlen(buffer[i]);dlina=dlina+x; for (j=0;j<=x;j++) //данные из массива помещаем в стек {s1.push(buffer[i][j]);k++;}; }; for (z='A';z<='Z';z++) {for (i=0;i<=k;i++) //выводим данные из стека в алфавитном порядке {if ((s1.pop()==z)||(s1.pop()==(z+32))){cout << s1.pop() << endl << "\n";}; }; }; return 0; } |
creer |
![]()
Сообщение
#2
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 121 Регистрация: 28.10.2007 Город: Екатеринбург Учебное заведение: УГТУ-УПИ Вы: студент ![]() |
Там точка с запятой лишняя, ну и немного отформатировал, так красивее :-). И private можно не писать.
Код // 2_1.cpp : Defines the entry point for the console application. //include "stdafx.h" #include <fstream> #include <iostream> #include <string> #include <cstring> #include <stdlib.h> using namespace std; class Stack { static const int MAX = 80; int st[MAX]; int top; public: Stack() { top=0; } void push (int var) { st[++top]=var; } int pop( ) { return st[top--]; } }; int main() { Stack s1; const int MAX=80; char buffer[3][MAX]; int i=0; int x,j,dlina,k; char z; ifstream infile("input.txt"); while (!infile.eof()) { infile.getline(buffer[i],MAX); cout << buffer[i] << endl; i++; //считали данные в массив строк }; k=0; dlina=0; for (i=0;i<3;i++) { x=strlen(buffer[i]); dlina=dlina+x; for (j=0;j<=x;j++) //данные из массива помещаем в стек { s1.push(buffer[i][j]); k++; }; }; for (z='A';z<='Z';z++) { for (i=0;i<=k;i++) //выводим данные из стека в алфавитном { if ((s1.pop()==z)||(s1.pop()==(z+32))) { cout << s1.pop() << endl << "\n"; }; }; }; return 0; } |
Tri |
![]()
Сообщение
#3
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 94 Регистрация: 26.10.2007 Город: Тюмень Учебное заведение: ТГНГУ Вы: студент ![]() |
Спасибо большое.
Самое интересное, что это фрагмент кода я взяла из учебника Лафоре ООП в С++, так что даже в таких книгах бывают очепятки (IMG:style_emoticons/default/smile.gif) |
creer |
![]()
Сообщение
#4
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 121 Регистрация: 28.10.2007 Город: Екатеринбург Учебное заведение: УГТУ-УПИ Вы: студент ![]() |
(IMG:style_emoticons/default/smile.gif)
Да, эта серия хорошая. Такие опечатки сложно заметить, наверное. |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 25.5.2025, 16:24 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru