Last active
May 22, 2017 16:59
-
-
Save skhozinova/91952992ef977076fcd17f85d1f3bd82 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| -1 | |
| 2 | |
| -3 | |
| 4 | |
| 5 | |
| -10 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 542 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include<stdio.h> | |
| #include<conio.h> | |
| // Создать список из целых чисел. Подсчитать сумму положительных элементов. Создать из них новый список. | |
| struct stack //описание стека stack | |
| { | |
| int inf; stack *next; | |
| }; | |
| stack *init_stack() //инициализация стека | |
| { | |
| return NULL; | |
| } | |
| void push(stack *&s,int item) //добавление элемента в стек. Передача по ссылке | |
| //Значение аргумента меняется | |
| { | |
| stack *r; | |
| r=new stack; | |
| r->inf=item; | |
| r->next=s; | |
| s=r; | |
| } | |
| int pop(stack *&s) //выбор верхнего элемента из стека | |
| { | |
| stack *r=s; | |
| int x=r->inf; | |
| s=r->next; | |
| delete r; | |
| return x; | |
| } | |
| int peek(stack *s) //просмотр верхнего элемента стека | |
| { | |
| return s->inf; | |
| } | |
| int empty_stack(stack *s) //определение пустоты стека | |
| { | |
| return(s)?0:1; | |
| } | |
| int main(void) | |
| { | |
| FILE *h=fopen("in.txt","r"); | |
| FILE *g=fopen("output.txt","w"); | |
| int x; | |
| int sum=0; | |
| stack *head=init_stack(); //инициализация стека | |
| while (!feof(h)) //пока не достигнут конец файла h | |
| { | |
| fscanf(h,"%d",&x); //читаем целое число из файла в переменную i | |
| push(head,x); //записываем значение i в стек | |
| } | |
| while (!empty_stack(head)) //пока стек не пуст | |
| { | |
| x=pop(head); //извлекаем верхний элемент из стека | |
| if(x>0) | |
| { | |
| sum+=x; | |
| fprintf(g,"%d",x);//записываем его в файл g | |
| } | |
| } | |
| fcloseall(); //завершаем работу с файлами | |
| return 0; | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment