Code:
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include <cstdlib>
struct sinhvien
{
		char masv[25];
		char ho[50];
		char ten[50];
		float diemlythuyet;
		float diemthuchanh;
		float tongdiem;
}; 
typedef sinhvien svien;
svien *sv;
void nhap(int n)
{
	
		for(int i=0;i<n;i++)
	{	fflush(stdin);
	printf("\n sinh vien thu %d ",i+1);
	printf("\n ma sinh vien= ");
	gets(sv[i].masv);fflush(stdin);
	printf("\n ho sinh vien");
	gets(sv[i].ho);fflush(stdin);
	printf("\n ten sinh vien= ");
	gets(sv[i].ten);fflush(stdin);
	printf("\n diem ly thuyet= ");
	scanf("%f",&sv[i].diemlythuyet);
	printf("\n diem thuc hanh= ");
	scanf("%f",&sv[i].diemthuchanh);
	}
}
void in(int n)
{
	for(int i=0;i<n;i++)
	{	
	printf("\n ma sinh vien: %s ",sv[i].masv);
	printf("\n Ho sinh vien : %s ",sv[i].ho);
	printf("\n ten sinh vien: %s ",sv[i].ten);
	printf("\n diem ly thuyet: %.0f",sv[i].diemlythuyet);
	printf("\n diem thuc hanh: %.0f ",sv[i].diemthuchanh);
	}
}
void diemtrungbinh(int n)
{
	int i;
	for(i=0;i<n;i++)
		{
		sv[i].tongdiem=sv[i].diemlythuyet*2+sv[i].diemthuchanh;	
		printf("\n diem trung binh cua sinh vien thu %d =%.2f",i+1,sv[i].tongdiem/3);
		}
 			
		
}
void timkiem(int n)
{ char msv[25];
	int i;
    int left=0,right=n-1;   
    int mid;
	printf("\n nhap ma sinh vien can tim :");
	fflush(stdin);
	gets(msv);
    while(left<=right)
    	{ mid=(left+right)/2;
		if(strcmp(msv,sv[mid].masv)<0)
    		right=mid-1;
    		
   		else
	      if(strcmp(msv,sv[mid].masv)>0)
   			left =mid+1;
   			
    	else break;
		}
  		if(strcmp(sv[mid].masv,msv)==0)
      	{
            printf("\nda tim thay thong tin sinh vien la");
            in(n);
      	}
      	else
      	printf("\nkhong co sinh vien nay");
		
}
void sapxep(int n)
{	sinhvien tam;
	for(int i=0;i<n;i++)
		for(int j=1;j<n;j++)
				if(strcmp(sv[j].ten,sv[j-1].ten)<0)
				
					{     
     
	 		tam=sv[i];
						sv[i]=sv[j];
						sv[j]=tam;
					}else  
     if(strcmp(sv[j].ten,sv[j-1].ten)==0)
      if(strcmp(sv[j].ho,sv[j-1].ho)<0)	
	  
					{     
     
	 		           tam=sv[i];
						sv[i]=sv[j];
						sv[j]=tam;
						}			
} 
void main()
{	int n,i;
	char abc[50];
	printf("\n nhap so sinh vien = ");
	scanf("%d",&n);
	sv=new sinhvien[n];
	nhap(n);
	sapxep(n);
	in(n);
	diemtrungbinh(n);
	timkiem(n);
}
xem dùm em ở đoạn code nhị phân với