Lỗi khi viết chương trình đơn giản để in ra lựa chọn của người dùng và kiểm tra xem lựa chọn đó đúng hay sai

Mình tự học C++ và đọc đến phần con trỏ
Mình thử viết chương trình đơn giản để in ra lựa chọn của người dùng và kiểm tra xem lựa chọn đó đúng hay sai :slight_smile:

Tuy nhiên khi chạy nó chỉ in ra màn hình lựa chọn của người dùng chứ k in ra lựa chọn đó là đúng hay là sai …:joy:
Ai biết sửa mã nguồn giùm mình đc k ?

Kết quả khi chạy chương trình :

[code]Running /home/ubuntu/workspace/witch+pointer.cc
Lựa chọn tùy chọn bạn:
A.Lựa chọn A
B.Lựa chọn B
C.Lựa chọn C
B
Lựa chọn của bạn : Lựa Chọn B

Process exited with code: 0 [/code]

Mã nguồn chương trình của mình :

[code] // Ví dụ về Switch + Pointer
//Đưa ra 3 lựa chọn A,B,C và yêu cầu ng dùng lựa chọn và in ra Lựa chon
//Giải thuật + dữ liệu
//Đưa ra câu hỏi
//Đưa ra 3 lựa chọn A,B,C
//Yêu cầu người dùng nhập vào lựa chọn của mình (A,B,C)
//Tạo con trỏ để trỏ đến các lựa chọn
//
//In ra lựa chọn của ng dùng
//Tạo hàm để So sánh và hiển thị xem lựa chọn đó là đúng hay sai

#include
#include
using namespace std;
void Dap_an_cuaban (char Luachoncuaban)
{
char A,B,C;
if (Luachoncuaban==A)
{
cout<<“Lựa chọn đúng”<<endl;
}
else if (Luachoncuaban==B)
{
cout<<“Lựa chọn Sai”<<endl;
}
else if (Luachoncuaban==C)
{
cout<<“Lựa chọn Sai”<<endl;
}

}

int main()
{
cout<<"Lựa chọn tùy chọn bạn: "<<endl;
cout<<“A.Lựa chọn A”<<endl;
cout<<“B.Lựa chọn B”<<endl;
cout<<“C.Lựa chọn C”<<endl;

string LuachonA,LuachonB,LuachonC;
LuachonA=“Lựa chọn A”;
LuachonB=“Lựa Chọn B”;
LuachonC=“Lựa Chọn C”;

char Luachoncuaban;
cin>>Luachoncuaban;
string *Dapan(0);

switch(Luachoncuaban)
{
case ‘A’:
Dapan=&LuachonA;
break;
case ‘B’:
Dapan=&LuachonB;
break;
case ‘C’:
Dapan=&LuachonC;
break;

}

cout<<"Lựa chọn của bạn : "<<*Dapan<<endl;
Dap_an_cuaban(Luachoncuaban);
}

[/code]

char A,B,C chưa có gán gì nên không biết giá trị của nó.

1 Like

Thank bạn nhưng mình vẫn chưa hiểu lắm :joy:

Bạn có thể sửa code trực tiếp cho mình hoặc ns kĩ hơn 1 chút đc k !
Tại mình k biết code lại nó như nào
Theo mình hiểu thì khi người dùng nhập vào lựa chọn của họ là A,B hay C ở chỗ cin>>Luachoncuaban;
thì nó sẽ lưu A,B hoặc C và biến Luachoncuaban !
Khi mình gọi hàm Dap_an_cuaban (Luachoncuaban)

Thì nó sẽ truyền tham số A,B hoặc C của biến Luachoncuaban vào hàm Dap_an_cuaban
Sau đó thực thi phần nội dung thân hàm và in ra kết quả chứ nhỉ ?
Hay tại mình hiểu sai nhỉ ?

trong hàm so sánh Dap_an_cuaban()
bạn so sánh chuối nhập vào với A, B , C.
mà A, B , C là 3 biến kiểu char khai báo trong hàm, chưa được gán giá trị, chưa có giá trị.
Sửa, bỏ 3 biến char A, B, C đi, so sánh thẳng luôn:

void Dap_an_cuaban (char Luachoncuaban)
{
    if (Luachoncuaban == 'A')
    {
        cout<<"Lựa chọn đúng"<<endl;
    }
    else if (Luachoncuaban == 'B')
    {
        cout<<"Lựa chọn Sai"<<endl;
    }
    else if (Luachoncuaban == 'C')
    {
        cout<<"Lựa chọn Sai"<<endl;
    }
}
1 Like

Thanks bạn nhìu nha ! Mình nghĩ mãi mà k ra :slight_smile:

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