Trong bài viết này chúng ta sẽ thực hiện chương trình kiểm tra số nguyên dương n có toàn chữ số lẻ hay không bằng C / C++. Để hiểu được bài này các bạn cần có kiến thức cơ bản về C và C++.
Mình sẽ thực hiện hai chương trình để kiểm tra với hai ngôn ngữ khác nhau là C và C++.
Kiểm tra số nguyên dương n có toàn chữ số lẻ hay không bằng C
Ta sử dụng vòng lặp do..while để yêu cầu người dùng nhập vào số nguyên dương n, nếu n < 0 thì yêu cầu nhập lại.
do { printf("\nNhập vào số nguyên dương n: "); scanf("%d", &n); if(n < 0) { printf("\nSố n phải >= 0, vui lòng nhập lại !"); } }while(n < 0);
Ta cần một biến check = 1 để kiểm tra tính đúng sai.
Tiếp đến sử dụng vòng lặp while với điều kiện n /= 10 để kiểm tra, nếu chữ số trong n là số lẻ thì check = 1, ngược lại thì bằng 0.
while(n /= 10) { if((n % 10) % 2 == 0) { check = 0; break; } }
Sử dụng câu lệnh if để kiểm tra nếu check = 1 thì hiển thị là đúng, ngược lại thì hiển thị là sai.
if(check == 1) { printf("Đúng !"); } //ngược lại là sai else { printf("Sai"); }
Code:
#include<stdio.h> int main() { //khai báo biến n là số cần kiểm tra int n; //sử dụng vòng lặp do..while để yêu cầu nhập vào số nguyên dương nguyên //nếu n < 0 thì yêu cầu nhập lại do { printf("\nNhập vào số nguyên dương n: "); scanf("%d", &n); if(n < 0) { printf("\nSố n phải >= 0, vui lòng nhập lại !"); } }while(n < 0); printf("\nSố %d có toàn các chữ số lẻ hay không?\n", n); //khai báo biên check để kiểm tra đúng sai int check = 1; //dùng vòng lặp while để kiểm tra nếu chữ số trong n là số lẻ thì //check = 1, ngược lại không phải thì check = 0 while(n /= 10) { if((n % 10) % 2 == 0) { check = 0; break; } } //nếu check = 1 thì đúng if(check == 1) { printf("Đúng !"); } //ngược lại là sai else { printf("Sai"); } printf("\n-----------------------------------\n"); printf("Chương trình này được đăng tại Freetuts.net"); }
Kết quả:
Kiểm tra số nguyên dương n có toàn chữ số lẻ hay không bằng C++
Việc kiểm tra số nguyên dương n có toàn chữ số lẻ hay không bằng C++ cũng tương tự như ngôn ngữ C. Vì về cơ bản thì hai ngôn ngữ này cũng khá tương đồng nhau.
Ta chỉ cần thay thế printf() và scanf() trong ngôn ngữ C bằng cout và cin trong C++. Các bạn nhớ khai báo thư viện <iostream> trước khi sử dụng nhé.
#include<iostream> using namespace std; int main() { //khai báo biến n là số cần kiểm tra int n; //sử dụng vòng lặp do..while để yêu cầu nhập vào số nguyên dương nguyên //nếu n < 0 thì yêu cầu nhập lại do { cout<<"\nNhập vào số nguyên dương n: "; cin>>n; if(n < 0) { cout<<"\nSố n phải >= 0, vui lòng nhập lại !"; } }while(n < 0); cout<<"\nSố "<<n<<" có toàn các chữ số lẻ hay không?\n"; //khai báo biên check để kiểm tra đúng sai int check = 1; //dùng vòng lặp while để kiểm tra nếu chữ số trong n là số lẻ thì //check = 1, ngược lại không phải thì check = 0 while(n /= 10) { if((n % 10) % 2 == 0) { check = 0; break; } } //nếu check = 1 thì đúng if(check == 1) { cout<<"Đúng !"; } //ngược lại là sai else { cout<<"Sai"; } cout<<"\n-----------------------------------\n"; cout<<"Chương trình này được đăng tại Freetuts.net"; }
Kết quả:
Như vậy là chúng ta đã thực hiện xong chương trình kiểm tra số nguyên dương n có toàn chữ số lẻ hay không bằng C / C++. Các bạn có thể tham khảo các bài tập khác tại Tổng hợp 1000 bài tập C / C++ nhé, chúc các bạn thành công !!!
Nguồn: freetuts.net