anh chị xem dùm em cái bày, sao khi không nhập gì cả enter nó không bị thoát ra khỏi vong lặp while



#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct
{ char ho_ten[30];
float toan,ly,hoa,t;}
SV;
int main()
{
char str[30];
SV DS[1000];
int k=0,i,j,l;
float m,max;
while(1)
{
system("cls");
printf("nhap ten sv:%d
",k+1);
fflush(stdin);
gets(str);
if(str=="") break;
else
{strcpy(DS[k].ho_ten,str);
printf("nhap diem 3 mon toan ly hoa
");
scanf("%f
%f
%f",&DS[k].toan,&DS[k].ly,&DS[k].hoa);
DS[k].t=DS[k].toan+DS[k].ly+DS[k].hoa;
k=k+1;}
}
printf("
doc vao diem chuan");
scanf("%f",&m);//bien m dung lam diem chuan
printf("ds thi sinh trung tuyen la:
");

for(i=0;i<k;i++)
{ if(DS[i].toan&&DS[i].ly&&DS[i].hoa&&(DS[i].t)>=m) puts(DS[i].ho_ten);
if(DS[i].t>max) max=DS[i].t;//tim max
}
printf("danh sach cac ban cao diem nhat:
");
for(i=0;i<k;i++)
if(DS[i].t==j) puts(DS[i].ho_ten);

printf("nhap so sinh vien can tuyen");
scanf("%f",&l);// l la so sinhv ien can tuyen
for(i=0;i<k;i++)
for(j=i;j<k;j++)
if(DS[i].t>DS[j].t)
{
strcpy(str,DS[i].ho_ten); max=DS[i].t;
strcpy(DS[i].ho_ten,DS[j].ho_ten); DS[i].t=DS[j].t;
strcpy(DS[j].ho_ten,str); DS[j].t=max;}// max lam bien trung gian thoi [IMG]images/smilies/smile.png[/IMG])

for(i=k-l;i<k;i++)
if(DS[i].t==DS[k-l-1].t) l=l-1;
printf("diem chuan DHBKHN 2014:%f
vay nam nay se co %d ban trung tuyen", DS[k-l-1].t, l);
//lam nhhu the nay thi chua xet diem liet cua thi sinh;
getch();
return 0;
}