Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

Cho mình hỏi vì sao phần so sánh lúc chạy lại không hiện được kết quả vậy?

17:19 23-01-2025 478 lượt xem 2 bình luận 16:45 27-01-2025

#include<iostream>
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
using namespace std;
//HAM MENU----------------------------------------------------------------------------------------------------------------------
void menu(){
    cout << "\n================================================================================";
    cout << "\n\t\t---- Hay chon CTrinh can su dung ----";
    cout << "\n\n1. Tat ca phep tinh cua A va B";
    cout << "\t    2. So sanh A va B";
    cout << "\n\n3. Xac dinh chan le cua A va B";    
    cout << "\t    4. Thoat CT" << endl;
}
//HAM CHON MENU------------------------------------------------------------------------------------------------------------------
int chonmenu(){
    int n = 0;
    cout << "\n\nMoi chon Ctrinh: "; cin >> n;
    if (n>0 || n<3)
        return n;
    else 
        return chonmenu();
}
//HAM PHEP TINH A, B-------------------------------------------------------------------------------------------------------------
void pheptinh(float a, float b){    
    cout << "\nNhap A: "; cin >> a;
    if(a==0){
        do{
            cout << "A phai khac 0 !!" << endl; cout << "\nNhap A: "; cin >> a;    
        }while(a==0);
    }        
    cout << "\nNhap B: "; cin >> b;    
    if(b==0){
        do{
            cout << "B phai khac 0 !!" << endl; cout << "\nNhap B: "; cin >> b;    
        }while(b==0);
    }cout << "\n||KET QUA||"; 
    cout << "\nA + B = "<< a+b;    
    cout << "\nA - B = "<< a-b;
    cout << "\nA * B = "<< a*b;                            
    cout << "\nA / B = "<< a/b << endl;    
}
//HAM SO SANH A, B----------------------------------------------------------------------------------------------------------------
void sosanh(float e, float f){
    cout << "\nNhap A: "; cin >> e;
    if(e==0){
        do{
            cout << "A phai khac 0 !!" << endl; 
            cout << "\nNhap A: "; cin >> e;    
        }while(e==0);
    }        
    cout << "\nNhap B: "; cin >> f;    
    if(f==0){
        do{
            cout << "B phai khac 0 !!" << endl; 
            cout << "\nNhap B: "; cin >> f;    
        }while(f==0);
    if(e>f)
        cout << "\n==>A lon hon B" << "\t(" << e << " > " << f << ")" << endl;            
    else{    
        if(e<f)
            cout << "\n==> A be hon B" << "\t(" << e << " < " << f << ")" << endl;
        else
            cout << "\n==> A = B" << "  (" << e << " = " << f << ")" << endl;
        }
    }
}
//HAM XAC DINH CHAN LE----------------------------------------------------------------------------------------------------------------
int chanle(){
    int c;
    cout << "\nNhap so can xac dinh: "; cin >> c;
    if(c==0){
        do{
            cout << "So phai khac 0 !!" << endl; cout << "\nNhap so can xac dinh: "; cin >> c;    
        }while(c==0);
    }        
    if(c%2==0) 
        cout << "\n==> " << c << " la so chan." << endl; 
    else 
        cout << "\n==> " << c << " la so le." << endl; 
}
//HAM XU LY MENU------------------------------------------------------------------------------------------------------------------
void xulymenu() {
    float a, b; int c;
    int chon = chonmenu();
    switch (chon){
        case 1:        
            cout << "\n1. Tat ca phep tinh cua A va B";
            pheptinh(a, b);
            break;
        case 2:
            cout << "\n2. So sanh A va B";
            sosanh(a, b);
            break;
        case 3:
            cout << "\n3. Xac dinh chan le cua A va B";
            chanle();
            break;
        case 4:
            cout << "\n4. Thoat CT";
            cout << "\nThoat!...";
            exit(1);
            break;
    }
}
//HAM MAIN-----------------------------------------------------------------------------------------------------------------------------
int main(){
    float a, b; int c;
    cout << "\t\t-----------------------------------------";
    cout << "\n\t\t|| CHUONG TRINH TINH TOAN TU DONG V1.2 ||";
    cout << "\n\t\t-----------------------------------------" << endl;
        menu();
        while(true){
            xulymenu();
        }
    return 0;
}

 

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
Speedfight đã bình luận 16:43 27-01-2025
Một số vấn đề trong chương trình:
Hàm chonmenu:

Điều kiện if (n > 0 || n < 3) là sai logic. Điều kiện đúng phải là if (n >= 1 && n <= 4).
Hàm pheptinh:

Không cần kiểm tra cả A và B phải khác 0 trước khi thực hiện phép cộng, trừ, nhân, chia. Chỉ cần kiểm tra khi thực hiện phép chia vì chia cho 0 không hợp lệ.
Hàm sosanh:

Vòng lặp kiểm tra ràng buộc if (f == 0) đang nằm trong một khối điều kiện thừa, làm kết quả không chính xác khi chạy chương trình.
Hàm chanle:

Chức năng kiểm tra số chẵn/lẻ không cần kiểm tra c == 0 vì số 0 đã là số chẵn.

Câu hỏi mới nhất