Mọi người cho e hỏi đoạn code sai ở chỗ nào. Đề bài là nhập tên các vận động viên và làm các bước theo yêu cầu, trong đó có bước nhập tên vận động viên và in ra. Sau khi e gcc (e làm trên linux nên ko có lệnh getch();, nếu mọi người xem trên win thì thêm hộ e [IMG]images/smilies/biggrin.png[/IMG]) thì nó ra:

Nhap ten vdv thu 1:Nhap ten vdv thu 2:
Tức là nó ko cho nhập tên của vận động viên thứ 1 mà mặc định là rỗng rồi sang nhập tên người thứ 2 luôn.

Mã:
#include <stdio.h>
#define MAX 10
typedef struct {
  char hoten[30];
  int diem[5];
} ketquathidau;

/*------------------------------------------------------*/
void dangky( ketquathidau b[], int m)
{ 
  int i;
  for (i=0;i<m;i++) 
    {printf("Nhap ten vdv thu %d:", i+1);
      fflush(stdin);
      gets(b[i].hoten);};
  printf("
"); 
  printf("Danh sach cac van dong vien:
");
  for (i=0;i<m;i++) printf("%s
", b[i].hoten);
}  

/*------------------------------------------------------*/
int nhapn()
{
  int a;
  while (1)
    { printf("
Nhap so van dong vien (toi da 10 nguoi):");
      fflush(stdin);
      if (scanf("%d",&a)!=1) printf("Day khong phai 1 so
");
      else if ((a<0)||(a>10)) printf("So van dong vien phai lon hon 0 va nho hon 10
");
      else break;}
  return a;
}


/*------------------------------------------------------*/
int main()
{
  ketquathidau vdv[MAX];
  int n;
  n=nhapn();
  dangky(vdv, n);
  return 0;
}