đây là đề thi nhập môn lập trình năm ngoái ạ
đề bài: viết các hàm thực hiện các chức năng:
1. Nhập danh sách sinh viên, chỉ nhập tên, điểm TB được khởi tạo ngẫu nhiên
2. Xuất danh sách sinh viên ra màn hình
3. Tìm và xuất thông tin của sinh viên có tên đứng đầu danh sách
em đã viết 1 bài hoàn chỉnh, khi chạy không báo lỗi, nhưng khi nhập xong tên của sinh viên đầu tiên, máy báo lỗi "..." has stopped working..."
mong các anh chị giúp đỡ :unhappy:
đây là code của em:
đề bài: viết các hàm thực hiện các chức năng:
1. Nhập danh sách sinh viên, chỉ nhập tên, điểm TB được khởi tạo ngẫu nhiên
2. Xuất danh sách sinh viên ra màn hình
3. Tìm và xuất thông tin của sinh viên có tên đứng đầu danh sách
em đã viết 1 bài hoàn chỉnh, khi chạy không báo lỗi, nhưng khi nhập xong tên của sinh viên đầu tiên, máy báo lỗi "..." has stopped working..."
mong các anh chị giúp đỡ :unhappy:
đây là code của em:
Code:
typedef struct SV { char *ten; float diemtb; }SINHVIEN; void nhapnsv(SV a[], int &n); void nhap1sv(SV a); void xuatnsv(SV a[], int n); void xuat1sv(SV a); void xuatsvdau(SV a[], int n); void main() { SV a[20]; int n; nhapnsv(a, n); xuatnsv(a, n); xuatsvdau(a, n); } void nhapnsv(SV a[], int &n) { do { printf("Nhap so luong sinh vien: "); scanf("%d", &n); } while (n <= 0); for (int i = 0; i < n; i++) nhap1sv(a[i]); } void nhap1sv(SV a) { printf("Nhap ten sinh vien: "); fflush(stdin); gets(a.ten); srand((unsigned)time(NULL)); int x; float y = 0.0; x = rand() % 11; if (x != 10) (float)y = (rand() % 10 / 10); a.diemtb = x + y; } void xuatnsv(SV a[], int n) { printf("Danh sach sinh vien\n"); for (int i = 0; i < n; i++) xuat1sv(a[i]); } void xuat1sv(SV a) { printf("%-30s%.1f\n", a.ten, a.diemtb); } void xuatsvdau(SV a[], int n) { SV max; max = a[0]; for (int i = 1; i < n; i++) if (strcmp(max.ten, a[i].ten) == 1) max = a[i]; printf("Sinh vien dau danh sach:\n"); xuat1sv(max); }
Comment