Đề bài yêu cầu xây dựng chương trình quản lý sinh viên. Em code như thế này, nhưng phần tìm thông tin sinh viên theo tên không thể chạy được. Anh(chị, các bạn) giúp em tìm lỗi sai với ạ
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
struct SV
{
char ten[20];
int age;
float DTB;
};
typedef SV sv;
void nhap(SV sv[], int &n)
{
for(int i = 0; i < n; i++)
{
printf("\nTen : "); fflush(stdin); gets(sv[i].ten);
printf("\nTuoi : "); scanf("%d", &sv[i].age);
printf("\nDiem trung binh : "); scanf("%f", &sv[i].DTB);
}
}
void xuat(SV sv[], int n)
{
printf("\n%-20s%-9s%-20s", "Ten", "Tuoi", "Diem trung binh");
for(int i = 0; i < n; i++)
{
printf("\n%-20s%-9d%-20.2f", sv[i].ten, sv[i].age, sv[i].DTB);
}
}
void sapXepTen(SV sv[], int n)
{
for(int i = 0; i<n-1; i++)
{
for(int j = i+1; j<n; j++)
{
if(strcmp(sv[i].ten, sv[j].ten) > 0)
{
SV tg = sv[i];
sv[i] = sv[j];
sv[j] = tg;
}
}
}
}
void sapXepDTB(SV sv[], int n)
{
for(int i = 0; i < n-1; i++){
for(int j = i+1; j < n; j++){
if(sv[i].DTB > sv[j].DTB){
SV tg = sv[i];
sv[i] = sv[j];
sv[j] = tg;
}
}
}
}
void timTen(SV sv[], int n, char name[])
{
for(int i = 0; i<n; i++)
{
if(name == sv[i].ten)
{
printf("\nTuoi : "); printf("%d", sv[i].age);
printf("\nDiem : "); printf("%.2f", sv[i].DTB);
}
}
}
int main()
{
SV sv[100];
int n, key;
char name[30];
do{
printf("\nSo sinh vien can nhap thong tin : ");
scanf("%d", &n);
} while(n <= 0);
nhap(sv, n);
while(true)
{
system("cls"); //clear screen
printf("************************************\n");
printf("** CHUONG TRINH QUAN LY SINH VIEN **\n");
printf("** 1. Xem danh sach **\n");
printf("** 2. Tim kiem theo ten **\n");
printf("** 3. Sap xep theo ten **\n");
printf("** 4. Sap xep theo diem **\n");
printf("** 0. Thoat **\n");
printf("************************************\n");
printf("** Nhap lua chon cua ban **\n");
scanf("%d", &key);
switch(key)
{
case 1:
printf("\nDanh sach sinh vien : ");
xuat(sv, n);
getch();
break;
case 2:
printf("\nTen sinh vien can tim : ");
gets(name);
timTen(sv, n, name);
getch();
break;
case 3:
printf("\nDanh sach sap xep theo Alphabet : ");
sapXepTen(sv, n);
xuat(sv, n);
getch();
break;
case 4:
printf("\nDanh sach sap xep theo diem trung binh : ");
sapXepDTB(sv, n);
xuat(sv, n);
getch();
break;
case 0:
printf("\nDa thoat truong trinh");
getch();
return 0;
default:
printf("\nKhong co chuc nang nay!");
printf("\nBam phim bat ki de tiep tuc");
getch();
break;
}
}
return 0;
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?