Mọi người có thể gợi ý cho em với
Làm sao để có thể tính điểm ưu tiên bằng chuỗi ký tự như KV1 thì 0.25đ,KV2 thì 0.5đ ?
Làm sao để có thể tính điểm ưu tiên bằng chuỗi ký tự?
Thì cứ if là được mà.
if (khuvuc == "KV1") {
diemthi += 0.25;
} else if (khuvuc == "KV2") {
diemthi += 0.5;
}
Không đc anh ạ em thử lúc nãy rồi
#include<iostream.h>
#include<iomanip.h>
struct Qlhs
{
char ma[15];
char khu[30];
float toan;
float van;
float diemtb;
float diemut;
float tong;
};
void input(Qlhs a[],int n);
void diemcong(Qlhs a[],int n);
void output(Qlhs a[],int n);
int main()
{
Qlhs a[30];
int i,n;
cout<<"Nhap n:";
cin>>n;
input(a,n);
output(a,n);
}
void input(Qlhs a[],int n)
{
for(int i=0;i<n;i++)
{
cin.ignore();
cout<<"\nNhap ma hoc sinh thu"<<i+1<<":";
cin.getline(a[i].ma,15);
cout<<"\nNhap khu vuc hoc sinh dang song:";
cin.getline(a[i].khu,30);
cout<<"\nNhap diem toan cua hoc sinh:";
cin>>a[i].toan;
cout<<"\nNhap diem van cua hoc sinh:";
cin>>a[i].van;
}
diemcong(a,n);
}
void diemcong(Qlhs a[],int n)
{
for(int i=0;i<n;i++)
{
if(a[i].khu=="KV1"||a[i].khu=="kv1")
{
a[i].diemut=0.75;
}
else if(a[i].khu=="KV2"||a[i].khu=="kv2")
{
a[i].diemut=0.25;
}
else if(a[i].khu=="KV2-NT"||a[i].khu=="kv2-nt")
{
a[i].diemut=0.5;
}
else if(a[i].khu=="KV3"||a[i].khu=="kv3")
{
a[i].diemut=0;
}
}
}
void output(Qlhs a[],int n)
{
for(int i=0;i<n;i++)
{
cout<<left;
cout<<"|"<<setw(8)<<i<<"|";
cout<<setw(12)<<a[i].ma<<"|";
cout<<setw(14)<<a[i].khu<<"|";
cout<<setw(13)<<a[i].toan<<"|";
cout<<setw(13)<<a[i].van<<"|";
cout<<setw(13)<<a[i].diemut<<"|";
cout<<endl;
cout<<"+--------+------------+--------------+-------------+-------------+-------------+"<<endl;
}
}
Bạn đã code C++ thì dùng std::string thay vì mảng char đi bạn
là sao ạ?anh giải thích kĩ giúp em với cô của bọn em ko nói đến std:string bao h
Thay vì dùng
thì bạn có thể khai báo
string ma;
Thế còn câu hỏi lúc đầu thì sao ạ? Anh xem giúp em với
em cảm ơn anh ạ
Nếu bạn dùng mảng char thì so sánh bằng strcmp().
sao lại dùng hàm này ạ ,em ko hiểu, đây là hàm so sánh 2 xâu mà anh
Ủa, giờ bạn phải so sánh 2 xâu thì mới biết được khu vực nào chứ.
em chắc là ko phải anh ạ
tại vì đề bài cũng cho kv1,kv2 ,kv3 ,kv2-nt nên em thấy có gì đó sai sai
Ủa, thế tóm lại là bạn đang làm gì và đề bài là gì vậy
đề bài đây anh ạ
Phím PrintScreen của bạn bị liệt phải không
em ko biết ảnh lưu vào ổ nào nên em chụp luôn.Sợ anh bận việc gì
Bạn chụp như thế này mình không nhìn nổi ra chữ gì luôn
Ở đây coi khu vực là 1 xâu, xâu đó có thể là "KV1", "KV2", "KV2-NT"
hoặc "KV3"
thôi.
vâng nhưng để làm sao nó có thể tính điểm ưu tiên ạ
em đã thử dùng if else rồi mà vẫn ko ra nó toàn chạy sai kết quả
Sai là sai như thế nào? Bạn đưa ra kết quả mẫu hay chứng minh bạn đã nộp ở đâu đó đi.