news 2026/7/16 4:17:14

P1319 压缩技术

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
P1319 压缩技术

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int main() { // 动态读取所有压缩码数字 int* codes = NULL; int count = 0; int capacity = 10; int num; // 初始分配内存 codes = (int*)malloc(capacity * sizeof(int)); // 读取所有数字 while (scanf("%d", &num) == 1) { if (count >= capacity) { // 扩大容量 capacity *= 2; int* temp = (int*)realloc(codes, capacity * sizeof(int)); if (temp == NULL) { printf("内存分配失败\n"); free(codes); return 1; } codes = temp; } codes[count++] = num; } // 第一个数字是 N int N = codes[0]; // 创建 N×N 的矩阵为一行 int* matrix = (int*)malloc(N*N * sizeof(int)); // 填充矩阵 int current = 0; // 当前填充的数字(0 或 1) int code_index = 1; // 从第二个数字开始(第一个是N) int remaining = codes[code_index]; // 当前数字还需要填充的次数 for (int i = 0; i < N * N; i++) { if (remaining == 0) { code_index++; current = 1 - current; remaining = codes[code_index]; } matrix[i] = current; remaining--; } // 输出矩阵 for (int i = 1; i <= N * N; i++) { printf("%d", matrix[i - 1]); if (i % N == 0) { printf("\n"); } } // 释放内存 free(matrix); free(codes); return 0; }

我的思路是将需要打印的方阵看成一行,在输出时只需要判断输出的一行数字有无到达N个,再输出换行符。这样就避免了给数组赋值时考虑行号与列号的变换。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 8:02:44

10.是否要成为全栈工程师?

1、软件工程师 嵌入式软件工程师 硬件工程师的关系一、各自的核心工作1. 软件工程师&#xff08;通常指“纯软件/应用层工程师”&#xff09;工作内容&#xff1a;负责非硬件相关的软件逻辑&#xff0c;比如&#xff1a;业务功能开发&#xff08;如APP界面、数据处理算法、网络…

作者头像 李华
网站建设 2026/7/15 20:58:38

兰顿蚂蚁——CAD二次开发

效果如下:private static void OnTick(object sender, EventArgs e){if (_currentStep > _maxSteps){Stop();return;}// 检查是否暂停if (_isPaused)return;Document doc Application.DocumentManager.MdiActiveDocument;Database db doc.Database;var ed doc.Editor;usi…

作者头像 李华
网站建设 2026/7/15 4:48:29

进程优先级和切换

第一部分&#xff1a;进程优先级 (Process Priority&#xff09;系统中的进程成百上千&#xff0c;但 CPU&#xff08;核&#xff09;可能只有几个。谁先用 CPU&#xff1f;这就涉及到竞争性。为了合理分配资源&#xff0c;必须要有优先级 。1. PRI 与 NI&#xff1a;一对“相爱…

作者头像 李华