, . ++. Visual C++ 6.0, , . . , izbor1=1 - . , (, double/float) . .

Code:
#include<fstream>
#include<iostream>
#include<iomanip>
#include<cassert>
using namespace std;
char s[64];

void input(double* m, char* NAME, int size);
void output(double* m, char* NAME, int size);
void shakesort(double* m, char* NAME, int size);
void count(double* m, int size);
void search(double* m, int size);
void menu();

void write(double* m, char* NAME, int size);
void read(double* m, char* NAME, int size);

fstream fp;

void main()
{ menu();
}

void menu()
{ int izbor, izbor1, size;
  char* NAME; 
  cout<<endl<<"Read or write a/to file [0/1]: ";
  cin>>izbor1;
  if(izbor1==0)
  { cout<<endl<<"Input Name: ";
    cin.ignore();
    cin.getline(s,64);
    NAME=new char[strlen(s)+1];
    assert(NAME!=NULL);
    strcpy(NAME, s);
    int count=0; 
    double buf;
    fp.open(NAME,ios::in);
    while(!fp.eof()){
	  fp>>buf;
	  count++; }
    fp.close();
    size=count-1;
  }
  else 
  { cout<<endl<<"Input Name: ";
    cin.ignore();
    cin.getline(s,64);
    NAME=new char[strlen(s)+1];
    assert(NAME!=NULL);
    strcpy(NAME, s); 
    cout<<endl<<"Size: ";
    cin>>size;		    
  }
  cout<<size;
  double* m=new double[size];
  do{
    do{ cout<<endl<<"Menu"<<endl;
	    cout<<"1.Input: "<<endl;
        cout<<"2.Output:"<<endl;
        cout<<"3.Shakesort: "<<endl;
		cout<<"4.Count: "<<endl;
		cout<<"5.Search for: "<<endl;
        cout<<"6.End of program!"<<endl;
        cin>>izbor;
	   }while(izbor<1 || izbor>6);
       switch(izbor)
       {  case 1:input(m, NAME, size); cout<<"\a"; break;
          case 2:output(m, NAME, size); cout<<"\a"; break;
	      case 3:shakesort(m, NAME, size); cout<<"\a"; break;
		  case 4:count(m, size); cout<<"\a"; break;
		  case 5:search(m, size); cout<<"\a"; break;
          default: cout<<endl<<"End!"<<"\a"<<endl;
        }
    }while(izbor!=6);
}

void write(double* m, char* NAME, int size)
{ fp.open(NAME,ios::out);
  fp.flush();
  for(int i=0;i<size;i++) 
    fp<<m[i]<<" "; 
  fp.close();
}

void read(double* m, char* NAME, int size)
{  fp.open(NAME,ios::in);
   fp.flush();
   for(int i=0;i<size;i++);
  	   fp>>m[i];
   fp.close();
}

void output(double* m, char* NAME, int size)
{ cout<<endl<<"Reading file.....";
  read(m, NAME, size);
  for(int i=0;i<size;i++)
  	 cout<<" "<<m[i];
}

void input(double* m, char* NAME, int size)
{ cout<<endl<<"Creating file...";
  cout<<endl<<"Input numbers: ";
  for(int i=0;i<size;i++)
  { cout<<endl<<"m["<<i<<"]= ";
    cin>>m[i]; }
   write(m, NAME, size);
}

void shakesort(double* m, char* NAME, int size)
{  int i;
   double k;
   cout<<endl<<"Unsorted array: ";
     for( i=0;i<size;i++)  
       cout<<" "<<m[i]; 
  int left=0, right=size-1;
   while(right-left>0)
   { k=0; 
   for(i=left;i<right;i++)
	   if(m[i]>m[i+1])
	   { swap(m[i],m[i+1]);
	     k=i; }
	right=k;
	k=size-1;
	for(i=right;i>left;i--)
		if(m[i-1]>m[i])
		{ swap(m[i-1],m[i]);
		  k=i; }
		left=k; }
   cout<<endl<<"Sorted array: ";
   for(i=0;i<size;i++)
	   cout<<" "<<m[i];
   cout<<endl<<"Writing to file...";
  write(m, NAME, size);
}

void count(double* m, int size)
{  int  p=0;
   int* mc=new int[size];
   double cp;
   for(int k=0;k<size;k++)
	   mc[k]=1;
  for(int i=0;i<size;i++)
	{ cp=m[i];
	   for(int j=i+1;j<size;j++)
		   if(cp==m[j])
			   mc[i]++;
 }
 cout<<endl<<"Sorted array: ";
 for(i=0;i<size;i++)
	   cout<<setw(3)<<m[i];
 cout<<endl<<"Number count: ";
 for(i=0;i<size;i++)
 {  cout<<setw(3)<<mc[i];
   if(i==0 && mc[i]==2) p++;
   else if(mc[i]==2 && mc[i-1]==1) p++; 
   else if(mc[i]==2 && mc[i-1]==3) p++; 	}
   cout<<endl<<"Number of twins: "<<p;
}

void search(double* m, int size)
{  	double s, pos, po;
    double* var=new double[size];
	for(int i=0;i<size;i++)
		var[i]=0;
	cout<<endl<<"Search for closest number: ";
	cin>>s;
	for(i=0;i<size;i++)
	{ if(m[i]!=s) 
	    if(m[i]>s)  var[i]=m[i]-s;
		else if(m[i]<s) var[i]=s-m[i];
	       else  { cout<<endl<<"Closest number is: "<<s; exit(1); }  }
	pos=100000;
	for(i=0;i<size;i++)
	 if(pos>var[i])
	{   pos=var[i]; 
	    po=i;}
	 int j=po;
	 cout<<endl<<"Closest number is: "<<m[j];
}