#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Sinhvien{
char hoten[30];
char lop[10];
int tuoi;
}SV;
void NhapDuLieu(SV x[], int *n);
void InDuLieu(SV x[], int n);
void TimSinhVien(SV x[], int n);
int main(){
SV x[10];
char timten[30];
int chon, n;
while(chon != 4){
printf("\nChon 1 de Nhap danh sach sinh vien");
printf("\nChon 2 de Hien thi danh sach sinh vien");
printf("\nChon 3 de Tim kiem sinh vien theo ten");
printf("\nChon 4 de Ket thuc");
printf("\nMoi ban chon: "); scanf("%d", &chon);
switch(chon){
case 1:{
printf("%d", n);
NhapDuLieu(x, &n);
printf("%d", n);
break;
}
case 2:{
InDuLieu(x, n);
break;
}
case 3:{
TimSinhVien(x, n);
break;
}
case 4:
break;
default:
printf("Ban da chon khong dung, moi ban nhap lai.\n");
}
}
return 0;
}
void NhapDuLieu(SV x[], int *n){
int i;
printf("Nhap so luong sinh vien: ");
scanf("%d", &n);
for(i = 0; i < n; i++){
printf("Sinh vien %d\nNhap ho ten: ", i + 1);
fflush(stdin);
gets(x[i].hoten);
printf("Nhap tuoi: ");
scanf("%d", &x[i].tuoi);
printf("Nhap lop: ");
fflush(stdin);
gets(x[i].lop);
}
}
void InDuLieu(SV x[], int n){
int i;
printf("STT \tHo Ten \tTuoi \tLop\n");
for(i = 0; i < n; i++){
printf("%d \t%s \t%d \t%s\n", i + 1, x[i].hoten, x[i].tuoi, x[i].lop);
}
}
void TimSinhVien(SV x[], int n){
int i;
char timten[30];
printf("Nhap ten sinh vien muon tim: ");
fflush(stdin);
gets(timten);
printf("STT \tHo Ten \tTuoi \tLop\n");
for(i = 0; i < n; i++)
if(strcmp(x[i].hoten, timten) == 0)
printf("%d \t%s \t%d \t%s\n", i + 1, x[i].hoten, x[i].tuoi, x[i].lop);
}
Ai xem giúp mình cách sửa bài này ntn với. Làm thế nào để lấy giá trị vào biến n khi ra khỏi hàm NhapDuLieu vậy. Ai biết giúp mình với. Cảm ơn mn 


83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?