Hỏi đáp
Chia sẻ kiến thức, cùng nhau phát triển
#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;
}
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.