Xem giúp bài tập cơ bản

Hiện e đang vướng 1 bài tập cơ bản mà ko giải quyết đc.
Đề bài yêu cầu viết chương trình chuyển đổi giữa độ C & độ F theo 1 công thức cho sẵn. Bên dưới là code của e:
Mã:
#include <iostream>
#include <conio.h>

using namespace std;
void main()
{
    int x(0), y, Temp;
    
    do
    {
    cout<<"Type your choice"<< endl;
    cout<<"1. Convert C to F    2. Convert F to C    3. Exit"<< endl;
    cin>>x; //Nhap x tu ban phim
    
        if (x==1)
        {
            cout<<"Please type Celsius temperature: "<< endl;
            cin>>y;
            Temp = (y*9)/5+32;
            cout<<y<<"C is equal with "<<Temp<<"F"<<endl;
            getch();
            
            
        }
        if (x==2)
        {
            cout<<"Please type Fehranheit temperature: "<< endl;
            cin>>y;
            Temp=(y-32)*5/9;
            cout<<y<<"F is equal with "<<Temp<<"C"<<endl;
            getch();
            system("cls");
        }
        if (x<1 || x>3));
        {
            cout<<"The number is out of range. Press Enter to choose again"<< endl;
            getch();
        }

    }while (x!=3);
}
Ý của e là nếu nhập phím lựa chọn (biến x) là 3 thì chương trình sẽ tự động thoát ra, nếu x<1 hoặc x>3 thì chương trình sẽ báo lỗi và lặp lại từ đầu.
Không hiểu sao e ko thể nào làm đc như vậy. Mong mọi ng chỉ giáo!
 

taplamhacker

♥ Thanh Trâm ♥
x = 3 thoát , x ngoài [1,3] báo lỗi
Mã:
#include <iostream>#include <conio.h>


using namespace std;
int main()
{
    int x(0), y, Temp;
    
    do
    {
    cout<<"Type your choice"<< endl;
    cout<<"1. Convert C to F    2. Convert F to C    3. Exit"<< endl;
    cin>>x; //Nhap x tu ban phim
    
        if (x==1)
        {
            cout<<"Please type Celsius temperature: "<< endl;
            cin>>y;
            Temp = (y*9)/5+32;
            cout<<y<<"C is equal with "<<Temp<<"F"<<endl;
            getch();
            
            
        }
        if (x==2)
        {
            cout<<"Please type Fehranheit temperature: "<< endl;
            cin>>y;
            Temp=(y-32)*5/9;
            cout<<y<<"F is equal with "<<Temp<<"C"<<endl;
            getch();
            system("cls");
        }
        if(x == 3)
        	return 1; // x = 3 se thoat
        if (x<1 || x>3)
        {
            cout<<"The number is out of range. Press Enter to choose again"<< endl;
            getch();
        }


    }while (x<1 || x > 3);
}
 

tengiday

Happy life
bạn sửa lại điều kiện while thành
Mã:
while (x<1 || x>3);
Hình như điều kiện 'x != 3' đúng rồi mà. Bạn ấy muốn lập lại hoài khi nào nhấn 3 mới thoát. Cái system("cls") đó nó xóa màn hình luôn rồi, ko dùng thế được. Tùy theo compiler, mình rất ít dùng bàn phím lấy input, nhưng mình nghĩ có thể chèn câu lệnh này tại mỗi vòng if (x == 1) và if (x == 2)
Mã:
system("pause");
system("cls");
 

taplamhacker

♥ Thanh Trâm ♥
Hình như điều kiện 'x != 3' đúng rồi mà. Bạn ấy muốn lập lại hoài khi nào nhấn 3 mới thoát. Cái system("cls") đó nó xóa màn hình luôn rồi, ko dùng thế được. Tùy theo compiler, mình rất ít dùng bàn phím lấy input, nhưng mình nghĩ có thể chèn câu lệnh này tại mỗi vòng if (x == 1) và if (x == 2)
Mã:
system("pause");
system("cls");
nếu nhập ngoài phạm vi thì chương trình yêu cầu nhập lại, nếu while x != 3 thì nếu bạn nhập vào x = 0 chuyện gì sẽ xảy ra
 

tengiday

Happy life
Nếu nhập 0 thì quay lại bắt người dùng nhập lại từ đầu, theo như post #1 chứ bạn.
 

taplamhacker

♥ Thanh Trâm ♥
:what: à đúng rồi, @@ k đọc kỹ ý của thớt lắm
thớt bỏ 1 dấu ")" và dấu ";" sau if cuối là hoàn thiện bài nhé
 
em năm nay mới bắt đầu đi học dh cd , em theo học cntt nhưng bọn em vẫn đang học những môn văn hóa, em muốn học trước 1 chút về lập trình, a chị, nào rảnh bớt chút thời gian chỉ bảo em với nha? em cảm ơn khì!
 

taplamhacker

♥ Thanh Trâm ♥
em năm nay mới bắt đầu đi học dh cd , em theo học cntt nhưng bọn em vẫn đang học những môn văn hóa, em muốn học trước 1 chút về lập trình, a chị, nào rảnh bớt chút thời gian chỉ bảo em với nha? em cảm ơn khì!
:cnr: skype trong chữ ký nhé
 
Top