30/09/2018, 16:03
Tìm một Char(nhập từ bàn phím) bằng phương pháp tuần tự!
Em có làm bài tập về nhà code C , nhập vào 1 danh sách sinh viên , sau đó nhập tên rồi tìm trong danh sách xem có tên SV đó ko ? Rồi xuất ra . Bài em vẫn chạy nhưng bấm đúng tên nó vẫn xuất ra câu Không tìm thấy . Giúp em !
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
#include <string.h>
struct SinhVien { //khai bao cau truc
char tenSV[30];
char maSV[10];
char gioiTinh[10];
int namSinh;
float diemTb,dToan,dLy,dHoa;
};
//****************************************************
void nhap1sv(SinhVien &SV)
{
float toan,ly,hoa;
flushall();
printf("Nhap ho ten Sinh Vien: ");
gets(SV.tenSV);
printf("Nhap ma Sinh Vien: ");
gets(SV.maSV);
printf("Nhap nam sinh: ");
scanf("%d",&SV.namSinh);
flushall();
printf("Nhap gioi tinh: ");
gets(SV.gioiTinh);
printf("Nhap diem Toan: ");
scanf("%f",&toan);
printf("Nhap diem Ly: ");
scanf("%f",&ly);
printf("Nhap diem Hoa: ");
scanf("%f",&hoa);
flushall();
SV.dToan=toan;
SV.dLy=ly;
SV.dHoa=hoa;
SV.diemTb=(SV.dToan+SV.dLy+SV.dHoa)/3;
}
//*******************************************************
void xuat1sv(SinhVien SV)
{
printf("Ho Ten %s || Ma %s || Nam Sinh %d || Gioi Tinh %s || Toan %.2f || Ly %.2f || Hoa %.2f || DTB %.2f",SV.tenSV,SV.maSV,SV.namSinh,SV.gioiTinh,SV.dToan,SV.dLy,SV.dHoa,SV.diemTb);
}
//*******************************************************
void nhapdssv(SinhVien SV[],int &n)
{
for(int i=0; i<n; i++) {
printf("Danh sach Sinh Vien: ");
printf("
Sinh vien thu :%d ",i+1);
nhap1sv(SV[i]);
}
}
//*******************************************************
void xuatdssv(SinhVien SV[],int n)
{
for (int i=0; i<n; i++) {
printf("
");
xuat1sv(SV[i]);
}
}
//******************************************************
int timtuantu(SinhVien SV[], int n,char key[])
{
for(int i=0; i<n; i++) {
if(strcmp(SV[i].tenSV,key)==0)
xuat1sv(SV[i]);
break;
}
return -1;
}
void main()
{
clrscr();
SinhVien SV[100];
char key[30];
int n;
printf("Nhap so luong Sinh Vien : ");
scanf("%d",&n);
nhapdssv(SV,n);
xuatdssv(SV,n);
printf("
Nhap ten Sinh Vien muon tim kiem: ");
gets(key);
timtuantu(SV,n,key);
if(timtuantu(SV,n,key)==-1)
printf("Khong tim thay Sinh Vien");
else
printf("Tim thay ten Sinh Vien");
getch();
}
Bài liên quan
Bạn xem lại từ đoạn if trong hàm main() xem
như thế nào anh , em vọc mãi từ chìu nó ko ra nên em mới lôi lên đây hỏi ạ
Ý mình là các phần còn lại đúng hết rồi thì kiểm tra từ chỗ if kiểm tra ngược lên mấy hàm liên quan.
@Quy_Rua
Do bạn break ra khỏi vòng for lúc này vẫn chưa thoát khỏi hàm nên lệnh tiếp theo được gọi là return - 1. Bạn có thể thay thế break bằng return 1 chẳng hạn.
À quên chỗ phải bỏ 2 lệnh sau điều kiện vào như thế này nhé
Vì 2 lệnh đó chỉ được thực hiện khi điều kiện true.