0 / 0 / 1
Регистрация: 29.10.2016
Сообщений: 2
1

Ребят нужен совет, есть текстовый файл с сбалансированный по круглым скобкам. Выполнить со стеком

04.10.2017, 20:04. Показов 556. Ответов 1
Метки нет (Все метки)

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#include <conio.h>
#include <stdio.h>
#define NMAX 100
#include <windows.h>
 
struct stek {
  char elem[NMAX];
  int top;
};
 
void init(struct stek *stk){
    stk->top = 0 ;
}
void push(struct stek *stk, char f){
    if (stk->top > NMAX){
        printf("Переполненно!");
    } else{
        printf("!\t");
        stk->elem[stk->top]=f;
        stk->top++;
    }
}
 
char pop(struct stek *stk){
    char elem;
    if (stk->top > 0){
        stk->top--;
        elem = stk->elem[stk->top];
        return (elem);
    }else return 0;
}
 
int gettop(struct stek *stk){
    return (stk->top);
}
 
int prov(struct stek *stk){
    if (stk->top == 0) return 1;
    else return 0;
}
 
void prin(struct stek *stk){
    int i;
    i=stk->top;
    if (prov(stk) == 1) return;
    do{
        i--;
        printf("%c\n", stk->elem[i]);
    }while (i>0);
    }
 
char stktop(struct stek *stk){
    char elem;
    if (stk->top > 0){
        elem = stk->elem[stk->top];
        return (elem);
    }else return 0;
}
 
int main(){
    SetConsoleCP(1251);
    system("chcp 1251");
    struct stek *stk;
    FILE *file;
    int n=0, m, d, l=0;
    stk = (struct stek*) malloc(sizeof(struct stek));
    init(stk);
 
 
    char *fname = "файлы.txt";
    char result_string[50]; ///Строка в 50 символов
    file = fopen(fname,"r");
    if(file == NULL){
        printf("не могу открыть файл '%s'",fname);
        return 0;
    }
    int i=0;
    while(fgets(result_string,sizeof(result_string),file)){
        printf("Строка %d :Длина строки - %d: ",i++,strlen(result_string));
        if(result_string[strlen(result_string)-1] == '\n'){   ///Если последний элемент в строке.
            //result_string[strlen(result_string)-1]='\0';
        }
        printf("Сама строка : %s\n",result_string);
    }
 
    n=strlen(result_string);
    printf("n=%d\n", n);
    for (i=1;i<strlen(result_string);i++){
        if(result_string[i]==')'){
            l++;
            d=1;///Число не спареных скобок.
            m=i-1;
            //printf("СТРАННО\n");
            while((d>0)&&(l>0)){
    //printf("ЧТО-ТО ТУТ НЕ ТАК\n");
                if(result_string[m]=='(') d--;
                if(result_string[m]==')') d++;
                m--;
            }                   //push(stk,result_string[m]);
    printf("Левая скобка:%d Правая скобка:%d", m, i);
            push(stk,result_string[i]);
                push(stk,result_string[m]);
    //printf("max=%d", max);
        }
    }
 
    printf("\nВ стеке %d элементов\n", gettop(stk));
    prin(stk);
    printf("Верхний элемент :%c\n", stktop(stk));
    do{
        printf("Исключить элемент (искл)%c\n", pop(stk));
 
    }while (stk->top > 0);
    fclose(file);
return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.10.2017, 20:04
Ответы с готовыми решениями:

Стек:В файле записан текст, сбалансированный по круглым скобкам
В файле записан текст, сбалансированный по круглым скобкам.Требуется для каждой пары...

В текстовом файле t записан текст, сбалансированный по круглым скобкам
Используя очередь, написать следующую задачу. В текстовом файле t записан текст, сбалансированный...

Добрый вечер. Ребят, нужен ваш совет
Добрый вечер.Ребят,посоветуйте пожалуйста, хочу начать учить C++ по книге &quot;ЯЗЫК ПРОГРАММИРОВАНИЯ...

Ребят, очень нужен совет по отключению интегрированой видеокарты
Дело в том, что на моем ноутбуке две видеокарты: интегрированная (intel hd 3000) и дискретная...

1
Заклинатель змей
610 / 507 / 213
Регистрация: 30.04.2016
Сообщений: 2,413
04.10.2017, 21:52 2
ILYAST, хвастаешься кодом?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.10.2017, 21:52

Ребят нужен совет. Не могу понять что писать в классах
Тип «Категорія» визначити як перерахування (enum) зі значеннями полів «драма», «оперета»,...

Ребят, нужен ваш совет по замене процессора у ASUS EEE PC 900
Здравствуйте, решил проапгрейдить свой нетбук. Хочу либо разогнать, либо заменить процессор, либо...

Есть текстовый файл, первый символ каждой строки записать в другой текстовый файл
Есть текстовый файл, первый символ каждой строки записать в другой текстовый файл помогите в...

Ребят, нужен ваш совет в создании схемы бд, т.к. я вообще не шарю в этом!Буду рад абсолютно любому совету
Разработать БД «АРМ библиотекаря», предназначенную для автоматизации работы библиотекаря. БД...

Ребят нужен технический совет по созданию приложения для для вывода ошибок с сервера
Здравствуйте, тут такое дело, в программировании android приложений я новичок, передо мной...

Есть сайт под google )) Нужен совет гуру!)
Сейчас есть русский сайт который забанен яшей но ОТЛИЧНО индексируется гуглом, хочу переделать его...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.