// udald2.cpp: определяет точку входа для консольного приложения.
// Список.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>

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

 void main()
 {
	 int n,k;
  first=new elem;
  puts("Input integer value or ENTER");
  gets(snum);
  first->num=atoi(snum);
  first->next=NULL;
  last=first;
   while(gets(snum),strlen(snum)!=0)
   {cur=new elem;
    cur->num=atoi(snum);
	cur->next=NULL;
	last->next=cur;
	last=cur;
   }
  puts("inputed spisok");
  cur=first;
  while(cur!=NULL)
  {printf("%5d",cur->num);
  cur=cur->next;}
  printf("\n");
  puts("input nomber of find elem");
  scanf("%d",&k);

  if(k>2)
 {
	n=2;
    tmp1=first;
    tmp=first->next;
    cur=tmp->next;
    do
     {tmp1=tmp;
      tmp=cur;
      cur=cur->next;
      if(cur!=NULL)
       n++;
	 }
    while((n!=k)&&(cur!=NULL));
    if(k==n) 
     {
       tmp1->next=tmp->next;
       delete(tmp);
       puts("new spisok");
       cur=first;
       while(cur!=NULL)
         {printf("%5d",cur->num);
          cur=cur->next;
	      }
       printf("\n");
	  }
    else printf("element %5d apsent",k);
 }
  else
   {if(k==1) 
     {tmp=first;
      first=first->next;
      delete(tmp);}
    if(k==2){
	  tmp=first->next;
	  first->next=tmp->next;
	  delete(tmp);}
    puts("NEW spisok");
    cur=first;
    while(cur!=NULL)
     {printf("%5d",cur->num);
      cur=cur->next;}
     printf("\n");
    }
 
    
 getch();
}