Mua hosting giá rất rẻ => Xem ngay
hoc c plus plus gif Bài tập C++

Quảng cáo

Đếm số lượng chữ số của số nguyên dương n bằng C / C++

Trong bài viết này chúng ta sẽ thực hiện chương trình đếm các chữ số của số nguyên dương n bằng C / C++. Ví dụ 1234 có 4 chữ số, 297429 có 6 chữ số,....

Mình sẽ thực hiện hai chương trình để đếm các chữ số của số nguyên dương n bằng hai ngôn ngữ khác nhau là C và C++.

Quảng cáo

Đếm các chữ số của số nguyên dương n bằng C

Ta cần khai báo hai biến n là số cần đếm chữ số và temp là biến thay thế cho n để ta sử dụng nó đếm chữ số. Một biến count = 0 để lưu số chữ số của n.

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 n lớn hơn 0: ");
    scanf("%ld", &n);
    if(n <= 0)
    {
      printf("\n Số n phải lớn hơn 0, vui lòng nhập lại !");
    }
  }while(n <= 0);

Tiếp đến ta gán n = temp, khi đó ta sẽ sử dụng temp để đếm số chữ số thay cho n.

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Sử dụng một vòng lặp while với n != 0, trong vòng lặp ta lấy temp = temp / 10, cứ sau mỗi vòng lặp thì tăng count lên 1.

Quảng cáo

while(temp != 0)
  {
    //sau một vòng lặp thì count sẽ tăng lên 1
    count++;
    //chia lấy nguyên cho 10, cứ một lần chia thì số n sẽ có một chữ số
    temp = temp / 10;
  }

Sau khi kết thúc vòng lặp thì ta được số chữ số là count, khi đó chỉ cần in count ra màn hình bằng printf().

Code:

#include<stdio.h>
#include<math.h>
int main()
{
  //khai báo biến
  long temp, n;
  int count = 0;
  //sử dụng dowhile để yêu cầu người dùng nhập vào só lớn hơn 0
  //nếu n < 0 thì yêu cầu nhập lại
  do
  {
    printf("\nNhập vào số nguyên n lớn hơn 0: ");
    scanf("%ld", &n);
    if(n <= 0)
    {
      printf("\n Số n phải lớn hơn 0, vui lòng nhập lại !");
    }
  }while(n <= 0);
  //gán biến n cho temp, ta sẽ sử dụng temp để đếm các chữ số
  temp = n;
  //nếu n == 0 thì có 1 chữ số
  if(n == 0) count = 1;
  //nếu temp khác 0 thì sử dụng vòng lặp while để đếm số
  while(temp != 0)
  {
    //sau một vòng lặp thì count sẽ tăng lên 1
    count++;
    //chia lấy nguyên cho 10, cứ một lần chia thì số n sẽ có một chữ số
    temp = temp / 10;
  }
  printf("\nSố chữ số của %ld là: %d", n, count);

  printf("\n--------------------------------------\n");
  printf("Chương trình này được đăng tại Freetuts.net");
}

Kết quả:

bai20 01 PNG

Đếm các chữ số của số nguyên dương n bằng C++

Để đếm các chữ số của số nguyên dương n bằng C++ cũng tương tự như ngôn ngữ C.

Ta chỉ cần thay thế printf() và scanf() trong C bằng cout và cin trong C++. Nhớ khai báo thư viện <iostream> trước khi sử dụng nó nhé.

Quảng cáo

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
  //khai báo biến
  long temp, n;
  int count = 0;
  //sử dụng dowhile để yêu cầu người dùng nhập vào só lớn hơn 0
  //nếu n < 0 thì yêu cầu nhập lại
  do
  {
    cout<<"\nNhập vào số nguyên n lớn hơn 0: ";
    cin>>n;
    if(n <= 0)
    {
      cout<<"\n Số n phải lớn hơn 0, vui lòng nhập lại !";
    }
  }while(n <= 0);
  //gán biến n cho temp, ta sẽ sử dụng temp để đếm các chữ số
  temp = n;
  //nếu n == 0 thì có 1 chữ số
  if(n == 0) count = 1;
  //nếu temp khác 0 thì sử dụng vòng lặp while để đếm số
  while(temp != 0)
  {
    //sau một vòng lặp thì count sẽ tăng lên 1
    count++;
    //chia lấy nguyên cho 10, cứ một lần chia thì số n sẽ có một chữ số
    temp = temp / 10;
  }
  cout<<"\nSố chữ số của "<<n<<" là: " << count;

  cout<<"\n--------------------------------------\n";
  cout<<"Chương trình này được đăng tại Freetuts.net";

}

Kết quả:

bai20 02 PNG

Như vậy là chúng ta đã thực hiện xong chương trình đếm các chữ số của số nguyên dương n 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 !!!

Quảng cáo

Câu hỏi thường gặp liên quan:

Các chủ đề liên quan:

Quảng cáo

Top