Câu hỏi:

14/03/2023 368

Viết chương trình nhập 1 số nguyên, xuất ra dạng chữ

Sách mới 2k7: Tổng ôn Toán, Lí, Hóa, Văn, Sử, Địa... kỳ thi tốt nghiệp THPT Quốc gia 2025, đánh giá năng lực (chỉ từ 70k).

Tổng ôn Toán-lý hóa Văn-sử-đia Tiếng anh & các môn khác

Quảng cáo

Trả lời:

verified
Giải bởi Vietjack

Viết bằng ngôn ngữ C#:

// code đọc số thành chữ

#define MXLEN 64

 // hàm nhận số và ghi cách đọc vào chuỗi ds

     char *DocSo(char *ds, int so)

    {

        char *kh [] = { "", "ngàn", "triệu", "tỷ" }; // các khoản 3 chữ số

        if (so == 0)

            return Doc3So(ds, so, 0);

        char d3s[MXLEN]; // chuỗi để đọc 3 chữ số

        int kilo = 0; // hàng ngàn

        while (so > 0)

        {

            Doc3So(d3s, so % 1000, so / 1000);

            if (strlen(ds) == 0)

                strcpy(ds, (strcmp(d3s,"không")) ? d3s : "chẵn");

            else if (strcmp(d3s,"không") || strcmp(ds,"chẵn"))

                strcpy(ds, strcat(strcat(strcat(strcat(d3s, " "), kh[kilo]), " "), ds));

                // tức là ds = d3s + " " + kh[kilo] + " " + ds;

            kilo++;

            so /= 1000;

        }

        return ds;

    }

 

    char *Doc3So(char *ds, int so, int truoc) // truoc: số có phần đi trước nó hay không

    {

        char *doc[] = { "không", "một", "hai", "ba", "bốn", "năm", "sáu", "bảy", "tám", "chín" };

        if (so == 0)

        {

            strcpy(ds, doc[0]);

            return ds;

        }

        int donvi = so % 10;

        int chuc = (so / 10) % 10;

        int tram = (so / 100) % 10;

        if (truoc != 0 || tram != 0)

        {

            strcat(strcpy(ds, doc[so / 100]), " trăm");

            // tức là ds = doc[so / 100] + " trăm";

            if (chuc == 0 && donvi != 0) strcat(ds, " lẻ");

        }

        if (chuc == 1) strcat(ds, " mười");

        else if (chuc > 1) strcat(strcat(strcat(ds, " "), doc[chuc]), " mươi");

                          // tức là x += " " + doc[chuc] + " mươi";

        if (chuc != 0 && donvi == 5) strcat(ds, " lăm");

        else if (donvi != 0) strcat(strcat(ds, " "), doc[donvi]);

        return ds;

    }

CÂU HỎI HOT CÙNG CHỦ ĐỀ

Câu 1:

Siêu văn bản là gì?

Xem đáp án » 14/03/2023 18,895

Câu 2:

Thông tin là gì? Tiếp nhận thông tin là gì?

Xem đáp án » 13/07/2024 17,691

Câu 3:

Viết một chương trình tính giai thừa của một số nguyên dương n. Với n được nhập từ bàn phím.

Định nghĩa giai thừa: giai thừa của 1 số là tích các số liên tiếp từ 1 đến số đó. Trường hợp đặc biệt, giai thừa của 0 và 1 là 1.

Ví dụ, n = 8 thì kết quả đầu ra phải là 1*2*3*4*5*6*7*8 = 40320.

Có 2 cách để viết chương trình tính giai thừa trong python:

· Tính giai thừa không sử dụng hàm đệ quy

· Tính giai thừa có sử dụng hàm đệ quy

Xem đáp án » 13/07/2024 12,348

Câu 4:

Viết chương trình giải phương trình bậc 2 trong Python. Phương trình bậc 2 có dạng: ax2+ bx+c=0.

Xem đáp án » 13/07/2024 5,929

Câu 5:

Khóa chính của bảng thường được chọn theo tiêu chí nào?

Xem đáp án » 13/03/2023 5,301

Câu 6:

Viết chương trình nhập chiều dài, chiều rộng hình chữ nhật. Tính chu vi, diện tích hình chữ nhật và in ra màn hình.

Xem đáp án » 13/07/2024 4,758

Câu 7:

Tính S(n) = 1 + 2 + 3 + … + n bằng C / C++

Xem đáp án » 13/07/2024 4,601

Bình luận


Bình luận