رو ای برنامه خیلی زحمت کشیدم ولی نمیدونم مشکلش چیه؟

اگه شما کمکم کنید خیلی ممنون میشم

#include <stdio.h>
#include <conio.h>
#include <iostream.h>
typedef struct{
long int stid;
char name[20];
char major[20];
char city[20];
float avg;
int Valid;
}student;
char display(void);
cmptr(char[],char[]);
int stdinput(student arr[],int size);
void sortid(student arr[],int size);
void sortname(student arr[],int size);
void sortavg(student arr[],int size);
void findid(student arr[],int size);
void findname(student arr[],int size);
int main(void)
{
student data[100];
int size=0;
char key;
while((key=display())!='7')
{
clrscr();
switch(key)
{
case '1':size=stdinput(data,size);
break;
case '2':sortid(data,size);
break;
case '3':sortname(data,size);
break;
case '4':sortavg(data,size);
break;
case '5':findid(data,size);
break;
case '6':findname(data,size);
break;
case '7':return 0;
}
}
return 0;
}
////////////////////////////////////////////////////////////////////////////////
char display(void)
{
clrscr();
char ch;
cout<<"Student's DataBase\n";
cout<<"------------------\n\n";
cout<<"\t 1)Enter New student."<<endl;
cout<<"\t 2)View List by ID."<<endl;
cout<<"\t 3)View List by Name."<<endl;
cout<<"\t 4)View List by Average."<<endl;
cout<<"\t 5)Find by ID."<<endl;
cout<<"\t 6)Find by Name."<<endl;
cout<<"\t 7)Exit"<<endl<<endl;
cout<<"Select:";
ch=getch();
return ch;
}
////////////////////////////////////////////////////////////////////////////////
int cmpstr(char str1[],char str2[])
{
int flag=0,i=0;
while(str1[i]||str2[i]&&!flag)
{
if(str1[i]>str2[i])
flag=1;
else if(str1[i]<str2[i])
flag=-1;
i++;
}
return(flag);
}
////////////////////////////////////////////////////////////////////////////////
void findname(student arr[],int size)
{
cout<<endl<<"Find Student by Name"
<<endl<<"-------------------"
<<endl<<"Enter Student Name";
char Name[25];
int i;
gets(Name);
for(i=0;i<size;i++)
if(!cmpstr(arr[i].name,Name))
break;
if(i<size)
cout<<(i+1)<<")"<<"\t"
<<arr[i].stid<<"\t\t"
<<arr[i].name<<"\t\t"
<<arr[i].avg<<"\t\t"
<<arr[i].major<<"\t\t"
<<arr[i].city<<endl;
else
cout<<endl<<" not found.";
getch();
}
////////////////////////////////////////////////////////////////////////////////
int stdinput(student arr[],int size)
{
int n;
cout<<endl<<"Enter New Student's Information:"
<<endl<<"--------------------------------"
<<endl<<"How many student?";
cin>>n;
for(int i=0;i<n;i++)
{
cout<<(i+1)<<")"<<endl;
cout<<"Name:";
gets(arr[size].name);
cout<<"ID:";
cin>>arr[size].stid;
cout<<"Major:";
gets(arr[size].major);
cout<<"City:";
gets(arr[size].city);
cout<<"Average:";
cin>>arr[size].avg;
cout<<endl;
size++;
}
cout<<endl<<"New entry.";
getch();
return(size);
}
////////////////////////////////////////////////////////////////////////////////
void sortid(student arr[],int size)
{
student temp;
int j;
cout<<endl<<"Studen's Information(Sorted by ID)"
<<endl<"----------------------------------"
<<endl<<"ID\t\tName\t\tAverag\tMajor\tCity\n\n";
for(int i=0;i<size;i++)
{
j=i;
temp=arr[i];
while(j>0&&temp.stid<arr[j-1].stid)
{
arr[j]=arr[j-1];
j--;
}
arr[j]=temp;
}
for(int k=0;k<size;k++)
{
cout<<(k+1)<<")"<<"\t"
<<arr[k].stid<<"\t\t"
<<arr[k].name<<"\t\t"
<<arr[k].avg<<"\t\t"
<<arr[k].major<<"\t\t"
<<arr[k].city<<endl;
}
getch();
}
////////////////////////////////////////////////////////////////////////////////
void sortname(student arr[],int size)
{
student temp;
int j;
cout<<endl<<"Studen's Information(Sorted by Name)"
<<endl<<"----------------------------------"
<<endl<<"ID\t\tName\t\tAverag\tMajor\tCity\n\n";
for(int i=0;i<size;i++)
{
j=i;
temp=arr[i];
while(j>0&&cmptr(arr[j-1].name,temp.name)>0)
{
arr[j]=arr[j-1];
j--;
}
arr[j]=temp;
}
for(int k=0;k<size;k++)
{
cout<<(k+1)<<")"<<"\t"
<<arr[k].stid<<"\t\t"
<<arr[k].name<<"\t\t"
<<arr[k].avg<<"\t\t"
<<arr[k].major<<"\t\t"
<<arr[k].city<<endl;
}
getch();
}
////////////////////////////////////////////////////////////////////////////////
void sortavg(student arr[],int size)
{
student temp;
int j;
cout<<endl<<"Studen's Information(Sorted by Average)"
<<endl<<"----------------------------------"
<<endl<<"ID\t\tName\t\tAverag\tMajor\tCity\n\n";
for(int i=0;i<size;i++)
{
j=i;
temp=arr[i];
while(j>0&&temp.avg<arr[j-1].avg)
{
arr[j]=arr[j-1];
j--;
}
arr[j]=temp;
}
for(int k=0;k<size;k++)
{
cout<<(k+1)<<")"<<"\t"
<<arr[k].stid<<"\t\t"
<<arr[k].name<<"\t\t"
<<arr[k].avg<<"\t\t"
<<arr[k].major<<"\t\t"
<<arr[k].city<<endl;
}
getch();
}
////////////////////////////////////////////////////////////////////////////////
void findid(student arr[],int size)
{
int n,i;
cout<<endl<<"Find Student by Std ID"
<<endl<<"----------------------"
<<endl<<"Enter Student ID:";
cin>>n;
for(i=0;i<size;i++)
if(arr[i].stid==n)
break;
if(i<size)
cout<<(i+1)<<")"<<"\t"
<<arr[i].stid<<"\t\t"
<<arr[i].name<<"\t\t"
<<arr[i].avg<<"\t\t"
<<arr[i].major<<"\t\t"
<<arr[i].city<<endl;
else
cout<<endl<<"Not found";
getch();
}
فکر کنم مشکل از تابع سرت آی دی باشه
