E đang gặp vấn đề ở chỗ hàm sắp xếp, e vẫn chưa hiểu tại sao lại lỗi ở chỗ khai báo biến tam, hy vọng mn có thể giải đáp cho e ạ!
#include<iostream>
using namespace std;
struct sinhvien {
char tennganh[50];
int soluong;
};
void nhap(sinhvien sv[]){
int tong = 0;
for(int i = 0; i < 3; i++){
fflush(stdin);
cout << "\nNhap nganh hoc thu " << i << ": ";
gets(sv[i].tennganh);
cout << "So luong SV: ";
cin >> sv[i].soluong;
tong = tong + sv[i].soluong;
}
cout << "\n=> Tong so sinh vien cua cac nganh la: " << tong << endl;
}
void xuat(sinhvien sv[]){
for(int i = 0; i < 3; i++){
cout << "\n CHUYEN NGANH: " << sv[i].tennganh;
cout << "\n SO LUONG SV: " << sv[i].soluong << endl;
}
}
void sapxep(sinhvien sv[]){
sinhvien tam;
for(int i = 0; i < 3; i++){
for(int j = i + 1; j < 3; j++){
if(sv[i].soluong > sv[j].soluong){
tam = sv[i].soluong;
sv[i].soluong = sv[j].soluong;
sv[j].soluong = tam;
}
}
}
}
int main(){
sinhvien sv[3];
nhap(sv);
cout << "\nDanh sach ten nganh va so sinh vien cua nganh ban da nhap la: " << endl;
xuat(sv);
sapxep(sv);
cout << "\nSap xep tang dan so luong SV cua cac nganh: " << endl;
xuat(sv);
char nganh[20];
cout << "\nNhap nganh ban muon tim kiem: ";
fflush(stdin);
gets(nganh);
for(int i = 0; i < 3; i++){
if(sv[i].tennganh == nganh){
cout << sv[i].soluong;
}
}
return 0;
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?