Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม C แสดงตัวเลขขนาดใหญ่ด้วยสัญลักษณ์ # (Large Number Display)

ได้รับตัวเลขในรูปสตริง ภารกิจคือพิมพ์ตัวเลขนั้นในขนาดใหญ่โดยใช้สัญลักษณ์ # (hash)

เช่น ตัวเลข "1234" จะแสดงเป็นรูปแบบขนาดใหญ่ที่ประกอบด้วย #

ตัวอย่าง

Input: n[] = {"2234"}
Output: (รูปตัวเลข 2234 ขนาดใหญ่จาก #)
Input: n[] = {"987"}
Output: (รูปตัวเลข 987 ขนาดใหญ่จาก #)

แนวทาง

  • รับตัวเลขสูงสุด 10 หลักในรูปสตริง
  • สร้างอาร์เรย์ 2 มิติสำหรับรูปแบบของแต่ละตัวเลข 0-9 (ความสูง 7 แถว)
  • วนอ่านแต่ละหลักของสตริง แล้วพิมพ์แถวต่อแถว

อัลกอริทึม

Start
Step 1: กำหนดความสูง H = 7, ความกว้าง W = 8
Step 2: ฟังก์ชัน large(char num[])
    ประกาศอาร์เรย์ 2 มิติ zero[H][W], one[H][W], ... nine[H][W] เก็บรูปแบบ #
    ถ้าความยาว num > 10 แสดงข้อความผิดพลาด
    ไม่เช่นนั้น:
        k = 1, j = 0
        วน while k <= 7 (แต่ละแถว)
            วน i = 0 ถึง strlen(num)-1 (แต่ละหลัก)
                ตรวจสอบ num[i] เป็น 0-9 แล้วพิมพ์อาร์เรย์ที่ตรงกันแถว j
            พิมพ์ขึ้นบรรทัดใหม่
            k++, j++
Step 3: main() กำหนด n[] = "2168" เรียก large(n)
Stop

โค้ดตัวอย่าง

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define H 7
#define W 8

int large(char num[]) {
    int i, j, k;
    char zero[H][W] = {" ##### ", " # # ", " # # ", " # # ", " # # ", " # # ", " ##### "};
    char one[H][W]  = {" # ", " # ", " # ", " # ", " # ", " # ", " # "};
    char two[H][W]  = {" ##### ", " # ", " # ", " ##### ", " # ", " # ", " ##### "};
    char three[H][W] = {" ##### ", " # ", " # ", " ##### ", " # ", " # ", " ##### "};
    char four[H][W] = {" # ", " # # ", " # # ", " ##### ", " # ", " # ", " # "};
    char five[H][W] = {" ##### ", " # ", " # ", " ##### ", " # ", " # ", " ##### "};
    char six[H][W]  = {" ##### ", " # ", " # ", " ##### ", " # # ", " # # ", " ##### "};
    char seven[H][W] = {" ##### ", " # ", " # ", " # ", " # ", " # ", " # "};
    char eight[H][W] = {" ##### ", " # # ", " # # ", " ##### ", " # # ", " # # ", " ##### "};
    char nine[H][W] = {" ##### ", " # # ", " # # ", " ##### ", " # ", " # ", " # "};

    if (strlen(num) > 10)
        printf("\nYou must enter a number upto 10 digits.\nTry again!\n");
    else {
        printf("\n");
        k = 1; j = 0;
        while (k <= 7) {
            for (i = 0; i < strlen(num); i++) {
                if (num[i] == '0') printf("%s", zero[j]);
                else if (num[i] == '1') printf("%s", one[j]);
                else if (num[i] == '2') printf("%s", two[j]);
                else if (num[i] == '3') printf("%s", three[j]);
                else if (num[i] == '4') printf("%s", four[j]);
                else if (num[i] == '5') printf("%s", five[j]);
                else if (num[i] == '6') printf("%s", six[j]);
                else if (num[i] == '7') printf("%s", seven[j]);
                else if (num[i] == '8') printf("%s", eight[j]);
                else if (num[i] == '9') printf("%s", nine[j]);
            }
            printf("\n");
            k++; j++;
        }
    }
    return 1;
}

int main() {
    char n[] = "2168";
    large(n);
    return 0;
}

ผลลัพธ์

(แสดงตัวเลข 2168 ในรูปแบบขนาดใหญ่จาก #)