Đếm số lượng chữ số lớn nhất của một số trong C | Lập Trình Từ Đầu

1. Bài tập đếm số lượng chữ số lớn nhất của số nguyên dương N trong C

Bài tập cơ bản này ta có thể có hướng giải quyết là sử dụng vòng lặp while trong ngôn ngữ lập trình C.

Đầu vào sẽ là một biến nguyên dương N,  yêu cầu của bài toán là đếm số lượng chữ số lớn nhất của N.

2. Lời giải

Để giải được bài tập đếm số lượng chữ số lớn nhất của số nguyên dương N trong C bạn phải có kiến thức về toán học cơ bản, có kiến thức về lập trình C cơ bản và cách sử dụng vòng lặp trong C.

Các bước thực hiện bài toán như sau:

Bước 1: Khai báo biến int N để gán giá trị của N, khai báo biến int max = 0 để gán giá trị chữ số lớn nhất của N, khai báo biến int dem=1 để đếm số lượng chữ số lớn nhất của N, khai báo biến int i.

Bước 2: Nhập vào N với điều kiện N>=0, nếu không yêu cầu nhập lại.

Bước 3: Sử dụng if với điều kiện N=0, nếu thỏa mãn thì max=0 và dem=1.

Bước 4: Ta sử dụng vòng lặp while với điều kiện là khi biến N còn khác 0 thì vòng lặp tiếp tục, trong vòng lặp ta cho gán biến i bằng N%10  mỗi khi lặp, sử dụng if với diều kiện nếu i bằng max thì biến dem sẽ tăng lên 1,  sử dụng if với điều kiện i>max nếu thỏa mãn thì gán giá trị i cho max (max=i) , còn biến N chia 10 mỗi khi lặp.

Bước 5: In biến dem ra màn hình.

Chương trình giải bài tập đếm số lượng chữ số lớn nhất của số nguyên dương N trong C như sau:

#include<stdio.h>
#include<math.h>
int main()
{
    //khai bao bien N
    int N;
    //khai bao bien i
    int i;
    //khai bao bien max
    int max=0;
    //khai bao bien dem
    int dem=1;
    do
    {
        //Nhap vao du lieu cua N
        printf("\nNhap N: ");
        scanf("%d", &N);
    }while(N < 0 && printf("\nLoi: n >= 0 !"));//Neu N<0 yeu cau nhap lai
    if(N==0)
    {
    	max=0;
    	dem=1;
    }
    while(N != 0)//Neu biên gan con khac 0 thuc hien vong lap
    {
    	i = N%10;//i = N chia lay du 10
    	if(i==max)
        {
            dem++;
        }
    	if (i>max)//Neu i>max thi gan gia tri cua max = i
        {
            max=i;	
        }
        N = N / 10;//bien N chia 10
    }
    //in bien max ra man hinh
    printf("\nChu so lon nhat la: %d",max);
    //in bien dem ra man hinh 
    printf("\nSo chu so lon nhat la: %d",dem);
}

Ví dụ tôi nhập N=2990979

Kết quả:

Nhap N: 2990979

Chu so lon nhat la: 9

So chu so lon nhat la: 4

3. Tổng kết

Để thực hiện giải bài tập đếm số lượng chữ số lớn nhất của số nguyên dương N trong C bạn đọc cần phải có kiến thức cơ bản về ngôn ngữ lập trình C, bạn cần nắm vững cách nhập xuất căn bản và các cách sử dụng vòng lặp trong C và các phép toán học cơ bản.