Làm sao để có thể tính điểm ưu tiên bằng chuỗi ký tự?

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đ ?

Thì cứ if là được mà.

if (khuvuc == "KV1") {
    diemthi += 0.25;
} else if (khuvuc == "KV2") {
    diemthi += 0.5;
}
2 Likes

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 :kissing:

1 Like

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;
1 Like

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().

1 Like

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ứ.

1 Like

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 :neutral_face:

1 Like

image
đề bài đây anh ạ

Phím PrintScreen của bạn bị liệt phải không :eyes:

1 Like

:slight_smile: 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 :eyes:

1 Like

Để em viết luôn đề bài

Ở đây coi khu vực là 1 xâu, xâu đó có thể là "KV1", "KV2", "KV2-NT" hoặc "KV3" thôi.

1 Like

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.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?