PC110104:LC-Display

本文介绍了一个使用C语言编写的程序,该程序能够根据用户输入的数字和指定的大小,生成并打印出数字的LED屏显示效果。通过不同的字符组合来模拟数字的形状,适用于学习基本的字符串操作及循环控制。
部署运行你感兴趣的模型镜像

1.最终显示的的列为(s+2)*w。

2.计算有多少位的时候要考虑输入0的情况。

3.pow()返回的是double类型。

4.考虑最后一列不输出空格。


#include <stdio.h>
#include <string.h>
#include <math.h>
#include<memory.h>
#define MAXN 8
#define MAXL 12*MAXN
#define MAXR 23

int main()
{
	char LCD[MAXR][MAXL];//显示字符
	int s;//显示的大小
	int i;//计数
	int j;
	int w;//数字的位数
	int n;//显示的数字
	int num;//保存当前位数字

	while (~scanf("%d%d", &s, &n)
		&&(s!=0||n!=0))
	{
		memset(LCD, '\0' ,sizeof(LCD));
		i=0;
		j=0;
		
		while ((n/(int)pow(10, i++))!=0)//计算多少位
		{
		}
		w = i -1;
		if (n==0)
		{
			w = 1;
		}
		for (i = 0; i < w; i++)
		{
			num=(n/(int)pow(10,w-i-1))%10;//当前位数字大小
			switch (num)
			{
			case 1:
			{
				for(j = 0; j < s;j++)
				{
					LCD[j+1][(i+1)*(s+2)-1] = '|';//第四列上半边的竖
					LCD[2*s+3-j-2][(i+1)*(s+2)-1] = '|';//第四列下半边的竖
				}
				break;
			}
			case 2:
			{
				for(j = 0; j < s;j++)
				{
					LCD[0][i*(s+2)+j+1] = '-';//第一行的横
					LCD[s+1][i*(s+2)+j+1] = '-';//中间行的横
					LCD[2*s+2][i*(s+2)+j+1] = '-';//最后行的横
					LCD[j+1][(i+1)*(s+2)-1] = '|';//第四列上半边的竖
					LCD[2*s+3-j-2][i*(s+2)] = '|';//第一列下半边的竖

				}
				break;
			}
			case 3:
			{
				for(j = 0; j < s;j++)
				{
					LCD[0][i*(s+2)+j+1] = '-';//第一行的横
					LCD[s+1][i*(s+2)+j+1] = '-';//中间行的横
					LCD[2*s+2][i*(s+2)+j+1] = '-';//最后行的横
					LCD[j+1][(i+1)*(s+2)-1] = '|';//第四列上半边的竖
					LCD[2*s+3-j-2][(i+1)*(s+2)-1] = '|';//第四列下半边的竖

				}
				break;
			}
			case 4:
			{
				for(j = 0; j < s;j++)
				{
					LCD[s+1][i*(s+2)+j+1] = '-';//中间行的横
					LCD[j+1][i*(s+2)] = '|';//第一列上半边的竖
					LCD[j+1][(i+1)*(s+2)-1] = '|';//第四列上半边的竖
					LCD[2*s+3-j-2][(i+1)*(s+2)-1] = '|';//第四列下半边的竖

				}
				break;
			}
			case 5:
			{
				for(j = 0; j < s;j++)
				{
					LCD[0][i*(s+2)+j+1] = '-';//第一行的横
					LCD[j+1][i*(s+2)] = '|';//第一列上半边的竖
					LCD[s+1][i*(s+2)+j+1] = '-';//中间行的横
					LCD[2*s+2][i*(s+2)+j+1] = '-';//最后行的横
					LCD[2*s+3-j-2][(i+1)*(s+2)-1] = '|';//第四列下半边的竖

				}
				break;
			}
			case 6:
			{
				
				for(j = 0; j < s;j++)
				{
					LCD[0][i*(s+2)+j+1] = '-';//第一行的横
					LCD[j+1][i*(s+2)] = '|';//第一列上半边的竖
					LCD[s+1][i*(s+2)+j+1] = '-';//中间行的横
					LCD[2*s+2][i*(s+2)+j+1] = '-';//最后行的横
					LCD[2*s+3-j-2][i*(s+2)] = '|';//第一列下半边的竖
					LCD[2*s+3-j-2][(i+1)*(s+2)-1] = '|';//第四列下半边的竖
				}
				break;
			}
			case 7:
			{
				for(j = 0; j < s;j++)
				{
					LCD[0][i*(s+2)+j+1] = '-';//第一行的横
					LCD[j+1][(i+1)*(s+2)-1] = '|';//第四列上半边的竖
					LCD[2*s+3-j-2][(i+1)*(s+2)-1] = '|';//第四列下半边的竖
				}
				break;
			}
			case 8:
			{
				for(j = 0; j < s;j++)
				{
					LCD[0][i*(s+2)+j+1] = '-';//第一行的横
					LCD[j+1][i*(s+2)] = '|';//第一列上半边的竖
					LCD[s+1][i*(s+2)+j+1] = '-';//中间行的横
					LCD[2*s+2][i*(s+2)+j+1] = '-';//最后行的横
					LCD[j+1][(i+1)*(s+2)-1] = '|';//第四列上半边的竖
					LCD[2*s+3-j-2][i*(s+2)] = '|';//第一列下半边的竖
					LCD[2*s+3-j-2][(i+1)*(s+2)-1] = '|';//第四列下半边的竖
				}
				break;
			}
			case 9:
			{
				for(j = 0; j < s;j++)
				{
					LCD[0][i*(s+2)+j+1] = '-';//第一行的横
					LCD[j+1][i*(s+2)] = '|';//第一列上半边的竖
					LCD[s+1][i*(s+2)+j+1] = '-';//中间行的横
					LCD[2*s+2][i*(s+2)+j+1] = '-';//最后行的横
					LCD[j+1][(i+1)*(s+2)-1] = '|';//第四列上半边的竖
					LCD[2*s+3-j-2][(i+1)*(s+2)-1] = '|';//第四列下半边的竖
				}
				break;
			}
			case 0:
			{
				for(j = 0; j < s;j++)
				{
					LCD[0][i*(s+2)+j+1] = '-';//第一行的横
					LCD[j+1][i*(s+2)] = '|';//第一列上半边的竖
					LCD[2*s+2][i*(s+2)+j+1] = '-';//最后行的横
					LCD[j+1][(i+1)*(s+2)-1] = '|';//第四列上半边的竖
					LCD[2*s+3-j-2][i*(s+2)] = '|';//第一列下半边的竖
					LCD[2*s+3-j-2][(i+1)*(s+2)-1] = '|';//第四列下半边的竖
				}
				break;
			}
			default:
			{
				break;
			}
			}
		}

		for (i = 0; i < 2*s+3; i++)
		{
			for (j = 0; j < (s+2)*w; j++)
			{
				if (LCD[i][j]=='\0')
				{
					LCD[i][j] = ' ';
				}
				printf("%c", LCD[i][j]);
				if (j!=(s+2)*w-1
					&&((j+1)%(s+2)==0))
				{
					printf(" ");
				}

			}
			printf("\n");
		}
		printf("\n");
	}
	return 0;
}


您可能感兴趣的与本文相关的镜像

Wan2.2-T2V-A5B

Wan2.2-T2V-A5B

文生视频
Wan2.2

Wan2.2是由通义万相开源高效文本到视频生成模型,是有​50亿参数的轻量级视频生成模型,专为快速内容创作优化。支持480P视频生成,具备优秀的时序连贯性和运动推理能力

ESP-ROM:esp32s3-20210327 Build:Mar 27 2021 rst:0x1 (POWERON),boot:0x2b (SPI_FAST_FLASH_BOOT) SPIWP:0xee mode:DIO, clock div:1 load:0x3fce2820,len:0x170c load:0x403c8700,len:0x4 load:0x403c8704,len:0xec4 load:0x403cb700,len:0x318c entry 0x403c8950 I (27) boot: ESP-IDF v5.4.1-dirty 2nd stage bootloader I (27) boot: compile time Jun 11 2025 18:19:41 I (27) boot: Multicore bootloader I (28) boot: chip revision: v0.2 I (30) boot: efuse block revision: v1.3 I (34) qio_mode: Enabling QIO for flash chip GD I (38) boot.esp32s3: Boot SPI Speed : 80MHz I (42) boot.esp32s3: SPI Mode : QIO I (46) boot.esp32s3: SPI Flash Size : 16MB I (50) boot: Enabling RNG early entropy source... I (54) boot: Partition Table: I (57) boot: ## Label Usage Type ST Offset Length I (63) boot: 0 nvs WiFi data 01 02 00009000 00006000 I (70) boot: 1 phy_init RF data 01 01 0000f000 00001000 I (76) boot: 2 factory factory app 00 00 00010000 004e2000 I (83) boot: 3 storage Unknown data 01 82 004f2000 005dc000 I (89) boot: 4 model Unknown data 01 82 00ace000 003e8000 I (96) boot: End of partition table I (99) esp_image: segment 0: paddr=00010020 vaddr=3c140020 size=1aedbch (1764796) map I (368) esp_image: segment 1: paddr=001bede4 vaddr=3fc9da00 size=01234h ( 4660) load I (370) esp_image: segment 2: paddr=001c0020 vaddr=42000020 size=13a638h (1287736) map I (563) esp_image: segment 3: paddr=002fa660 vaddr=3fc9ec34 size=07254h ( 29268) load I (569) esp_image: segment 4: paddr=003018bc vaddr=40374000 size=19984h (104836) load I (589) esp_image: segment 5: paddr=0031b248 vaddr=50000000 size=00004h ( 4) load I (589) esp_image: segment 6: paddr=0031b254 vaddr=600fe100 size=0001ch ( 28) load I (603) boot: Loaded app from partition at offset 0x10000 I (604) boot: Disabling RNG early entropy source... I (614) octal_psram: vendor id : 0x0d (AP) I (614) octal_psram: dev id : 0x03 (generation 4) I (615) octal_psram: density : 0x05 (128 Mbit) I (617) octal_psram: good-die : 0x01 (Pass) I (621) octal_psram: Latency : 0x01 (Fixed) I (625) octal_psram: VCC : 0x00 (1.8V) I (629) octal_psram: SRF : 0x01 (Fast Refresh) I (634) octal_psram: BurstType : 0x01 (Hybrid Wrap) I (639) octal_psram: BurstLen : 0x01 (32 Byte) I (644) octal_psram: Readlatency : 0x02 (10 cycles@Fixed) I (649) octal_psram: DriveStrength: 0x00 (1/1) I (654) MSPI Timing: PSRAM timing tuning index: 6 I (658) esp_psram: Found 16MB PSRAM device I (661) esp_psram: Speed: 80MHz I (795) mmu_psram: Read only data copied and mapped to SPIRAM I (904) mmu_psram: Instructions copied and mapped to SPIRAM I (905) cpu_start: Multicore app I (1568) esp_psram: SPI SRAM memory test OK I (1577) cpu_start: Pro cpu start user code I (1577) cpu_start: cpu freq: 160000000 Hz I (1577) app_init: Application information: I (1577) app_init: Project name: smart-panel I (1582) app_init: App version: 1 I (1585) app_init: Compile time: Jun 11 2025 18:29:27 I (1590) app_init: ELF file SHA256: f5a40f99f... I (1595) app_init: ESP-IDF: v5.4.1-dirty I (1599) efuse_init: Min chip rev: v0.0 I (1603) efuse_init: Max chip rev: v0.99 I (1607) efuse_init: Chip rev: v0.2 I (1611) heap_init: Initializing. RAM available for dynamic allocation: I (1617) heap_init: At 3FCABFF8 len 0003D718 (245 KiB): RAM I (1622) heap_init: At 3FCE9710 len 00005724 (21 KiB): RAM I (1628) heap_init: At 600FE11C len 00001ECC (7 KiB): RTCRAM I (1633) esp_psram: Adding pool of 13376K of PSRAM memory to heap allocator I (1640) spi_flash: detected chip: gd I (1643) spi_flash: flash io: qio W (1646) i2c: This driver is an old driver, please migrate your application code to adapt `driver/i2c_master.h` I (1656) sleep_gpio: Configure to isolate all GPIO pins in sleep state I (1662) sleep_gpio: Enable automatic switching of GPIO sleep configuration I (1669) main_task: Started on CPU0 I (1683) esp_psram: Reserving pool of 32K of internal memory for DMA/internal allocations I (1683) main_task: Calling app_main() I (1683) app_main: system start I (1839) S3-LCD-EV-BOARD: Partition size: total: 5640221, used: 5631185 I (1839) bsp_probe: Detect module with 16MB PSRAM I (1839) bsp_extra_board: BLINK_GPIO setting 4 I (1847) ES8311: Work in Slave mode I (1850) ES7210: Work in Slave mode I (1854) ES7210: Enable ES7210_INPUT_MIC1 I (1856) ES7210: Enable ES7210_INPUT_MIC2 I (1860) I2S_IF: channel mode 0 bits:16/16 channel:2 mask:3 I (1862) I2S_IF: STD Mode 1 bits:16/16 channel:2 sample_rate:16000 mask:3 I (1877) Adev_Codec: Open codec device OK I (1877) I2S_IF: channel mode 0 bits:16/16 channel:2 mask:3 I (1878) I2S_IF: STD Mode 0 bits:16/16 channel:2 sample_rate:16000 mask:3 I (1884) ES7210: Bits 16 I (1890) ES7210: Enable ES7210_INPUT_MIC1 I (1892) ES7210: Enable ES7210_INPUT_MIC2 I (1898) ES7210: Unmuted I (1898) Adev_Codec: Open codec device OK I (2009) file_iterator: File : For Elise.mp3 I (2029) file_iterator: File : Waka Waka.mp3 E (2030) bsp_probe: bsp_probe_sub_board_type(76): Failed to detect sub_board type, please check the hardware connection E (2032) lcd_panel: esp_lcd_panel_init(22): invalid panel handle ESP_ERROR_CHECK failed: esp_err_t 0x102 (ESP_ERR_INVALID_ARG) at 0x4204514a --- 0x4204514a: bsp_display_new at D:/share/esp32-s3-lcd-ev-board/examples/smart_panel/components/esp32_s3_lcd_ev_board/src/bsp_sub_board.c:268 (disc riminator 1) file: "./components/esp32_s3_lcd_ev_board/src/bsp_sub_board.c" line 268 func: bsp_display_new expression: esp_lcd_panel_init(panel_handle) abort() was called at PC 0x40380b93 on core 0 --- 0x40380b93: _esp_error_check_failed at D:/espressif/frameworks/esp-idf-v5.4.1/components/esp_system/esp_err.c:49 Backtrace: 0x40376109:0x3fcb0b20 0x40380b9d:0x3fcb0b40 0x403886ea:0x3fcb0b60 0x40380b93:0x3fcb0bd0 0x4204514a:0x3fcb0c00 0x420448f0:0x3fcb0d40 0x4204 4949:0x3fcb0d70 0x4200bc16:0x3fcb0d90 0x42139a23:0x3fcb0db0 --- 0x40376109: panic_abort at D:/espressif/frameworks/esp-idf-v5.4.1/components/esp_system/panic.c:454 --- 0x40380b9d: esp_system_abort at D:/espressif/frameworks/esp-idf-v5.4.1/components/esp_system/port/esp_system_chip.c:87 --- 0x403886ea: abort at D:/espressif/frameworks/esp-idf-v5.4.1/components/newlib/abort.c:38 --- 0x40380b93: _esp_error_check_failed at D:/espressif/frameworks/esp-idf-v5.4.1/components/esp_system/esp_err.c:49 --- 0x4204514a: bsp_display_new at D:/share/esp32-s3-lcd-ev-board/examples/smart_panel/components/esp32_s3_lcd_ev_board/src/bsp_sub_board.c:268 (disc riminator 1) --- 0x420448f0: bsp_display_start_with_config at D:/share/esp32-s3-lcd-ev-board/examples/smart_panel/components/esp32_s3_lcd_ev_board/src/esp32_s3_lc d_ev_board.c:332 --- 0x42044949: bsp_display_start at D:/share/esp32-s3-lcd-ev-board/examples/smart_panel/components/esp32_s3_lcd_ev_board/src/esp32_s3_lcd_ev_board.c :321 --- 0x4200bc16: app_main at D:/share/esp32-s3-lcd-ev-board/examples/smart_panel/main/main.c:51 --- 0x42139a23: main_task at D:/espressif/frameworks/esp-idf-v5.4.1/components/freertos/app_startup.c:208 ELF file SHA256: f5a40f99f Rebooting... ���ESP-ROM:esp32s3-20210327 Build:Mar 27 2021 rst:0xc (RTC_SW_CPU_RST),boot:0x2b (SPI_FAST_FLASH_BOOT) Saved PC:0x4037606c --- 0x4037606c: esp_restart_noos at D:/espressif/frameworks/esp-idf-v5.4.1/components/esp_system/port/soc/esp32s3/system_internal.c:160 以上是模组不断重启的日志信息,分析原因
最新发布
06-12
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值