30/09/2018, 16:17
Tìm thông tin sinh viên thông qua tên của Sinh viên?
Tìm thông tin sinh viên thông qua tên của SV thì làm sao mọi người
#include<stdio.h>
#include<conio.h>
struct SinhVien
{
char TenSV[30]; //Khi khai báo 1 chiểu bao giờ cũng khai báo chiều dài của chuỗi
int MSSV;
float diemtoan,diemanh,diemlaptrinh;
};
/*=========================Nhập Dữ Liệu========================*/
void nhapdulieu(SinhVien x[],int &n)
{
printf("
------------------------------------------------");
for(int i=0;i<n;i++)
{
fflush(stdin);
printf("
Nhap ten SV: ");
gets(x[i].TenSV);
fflush(stdin);
printf("
Nhap ten MSSV: ");
scanf("%d",&x[i].MSSV);
printf("
Nhap diem toan: ");
scanf("%f",&x[i].diemtoan);
printf("
Nhap diem anh: ");
scanf("%f",&x[i].diemanh);
printf("
Nhap diem lap trinh: ");
scanf("%f",&x[i].diemlaptrinh);
printf("
------------------------------------------------");
}
}
//===============================================================//
/*=========================Xuất Dữ Liệu=========================*/
void xuatdulieu(SinhVien x[],int n)
{
printf("
------------------------------------------------");
for(int i=0;i<n;i++)
{
printf("
Ten SV: %s",x[i].TenSV);
printf("
MSSV: %d",x[i].MSSV);
printf("
Diem toan: %.2f",x[i].diemanh);
printf("
Diem toan: %.2f",x[i].diemanh);
printf("
Diem toan: %.2f",x[i].diemlaptrinh);
printf("
------------------------------------------------");
}
}
//===============================================================//
/*=======================Tìm SV thông qua MSSV===================*/
void timsv_MSSV(SinhVien x[],int n,int maso)
{
for(int i=0;i<n;i++)
{
if(maso==x[i].MSSV)
{
printf("
Ten SV: %s",x[i].TenSV);
printf("
MSSV: %d",x[i].MSSV);
printf("
Diem toan: %.2f",x[i].diemtoan);
printf("
Diem toan: %.2f",x[i].diemanh);
printf("
Diem toan: %.2f",x[i].diemlaptrinh);
}
}
}
//===============================================================//
/*=======================Tính Trung Bình Cộng===================*/
void tbc(SinhVien x[],int n)
{
float trungbinhcong;
for(int i=0;i<n;i++)
{
trungbinhcong=(x[i].diemanh+x[i].diemlaptrinh+x[i].diemtoan)*1.0/3;
printf("
Diem TBC cua SV: %s la: %.2f",x[i].TenSV,trungbinhcong);
}
}
//==================================================================//
/*=======================Tìm Max Trung Bình Cộng====================*/
void timmaxtbc(SinhVien x[],int n)
{
float max=(x[0].diemtoan+x[0].diemanh+x[0].diemlaptrinh);
for(int i=0;i<n;i++)
{
if(x[i].diemanh+x[i].diemlaptrinh+x[i].diemtoan>max)
{
max=x[i].diemanh+x[i].diemlaptrinh+x[i].diemtoan;
printf("
SV %s co diem trung binh cao nhat: %.2f",x[i].TenSV,max/3);
}
}
}
//=================================================================//
/*===============Liệt Kê SV Theo 1 danh sách bất kì================*/
/*
Danh sách Họ Tên in ra tên thôi
*/
//=================================================================//
void timsv_Ten(SinhVien x[],int n,char TenSV[30])
{
for(int i=0;i<n;i++)
{
if(TenSV==x[i].TenSV)
{
printf("
Ten SV: %s",x[i].TenSV);
printf("
MSSV: %d",x[i].MSSV);
printf("
Diem toan: %.2f",x[i].diemtoan);
printf("
Diem toan: %.2f",x[i].diemanh);
printf("
Diem toan: %.2f",x[i].diemlaptrinh);
}
}
}
int main()
{
int n;
SinhVien x[100];
printf("
Nhap so luong SV: ");
scanf("%d",&n);
nhapdulieu(x,n);
/*
xuatdulieu(x,n);
int MStim;
printf("
Nhap MSSV can tim: ");
scanf("%d",&MStim);
timsv_MSSV(x,n,MStim);
*/
char tensvtim[30];
fflush(stdin);
printf("
Nhap ten sv can tim: ");
gets(tensvtim);
timsv_Ten(x,n,tensvtim);
getch();
}
Bài liên quan
Bạn nên dùng
strcmp trong thư viện <string.h>
để so sánh tên SVchổ này sao bằng 0
nếu 2 chuỗi giống nhau thì bằng 0
viết là
if(x[i].TenSV==TenSV)
luôn có đc ko nhỉ :3Sao em nhập tên SV cần tìm sao không cho nhập
:3 so sánh 1 chuỗi với 1 cấu trúc à :3
Vậy sữa lại làm sao cho đúng
cách này dùng với con trỏ nhé bạn
Do bạn đang dùng chuỗi dạng mảng char[] nên hông so sánh như vậy được nhé, nó giống như bạn cũng không thể so sánh hai mảng int[] bằng cách đó được mà phải duyệt để so sánh từng phần tử. Cứ thử thì nó sẽ báo lỗi được hay không ngay ấy mà
Nếu bạn dùng kiểu string thì có thể dùng “==” để so sánh
dùng string mà so sánh == thì auto kết quả trả về false nhé!
bạn dùm
stricmp
nó có thể so sánh cả ký tự thường và ký tự hoanếu 2 chuỗi giống nhau sẽ trả về giá trị 0