ได้รับตัวเลขในรูปสตริง ภารกิจคือพิมพ์ตัวเลขนั้นในขนาดใหญ่โดยใช้สัญลักษณ์ # (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 ในรูปแบบขนาดใหญ่จาก #)