// DvspStek.cpp : Defines the entry point for the console application.
// dvspisok.cpp: определяет точку входа для консольного приложения.
// Список.cpp: определяет точку входа для консольного приложения.
//Создать двунаправленный список - стек, вывести его на печать в 2 напрвлениях. 
//определить элементы, кратные 3  и их количество 
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>

struct elem{
	int num;
	elem *next;
	elem *pred;
	};
	elem *first, *cur, *tmp, *last;
	char snum[10];

 void main()
 {
	 int n,k;
	 puts("Input integer value or ENTER");
  first=new elem;
  puts("");
  gets(snum);
  first->num=atoi(snum);
  first->next=NULL;
  first->pred=NULL;
  last=first;
   while(gets(snum),strlen(snum)!=0)
   {cur=new elem;
    cur->num=atoi(snum);
	cur->next=first;
	first->pred=cur;
	cur->pred=NULL;
	first=cur;
   }
  puts("-----------inputed spisok first -> last----------\n-");
  cur=first;
  while(cur!=NULL)
  {printf("%5d",cur->num);
  cur=cur->next;}
  printf("\n");
  cur=last;
 puts("-----------inputed spisok last -> first-----------\n");
   while(cur!=NULL)
  {printf("%5d",cur->num);
  cur=cur->pred;}
  printf("\n");
  k=0;
  cur=first;
  puts("------elementy kratnye 3--------\n");
  while(cur!=NULL)
  { 
	  if (cur->num%3==0)
     {k++;
	 printf("%5d",cur->num);
	    
       }
     cur=cur->next;
  }
  if(k!=0)
	  printf("\nV spiske %5d elementov, kratnyx 3\n",k);
  else puts("\nV spiske elementov, kratnyx 3,net");
 puts("\n-------Delete spisok----------");   cur=first;
  while(first!=NULL)
  {  cur=first;
    first=first->next;
    delete cur;
   }
  cur=last=NULL;
  
  getch();

}
