首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏SDLC技术探究

    python实现的AI版飞花

    一 前言 “春城无处不飞花”,在遥远的古代,古人就开始有饮酒作乐的智慧,伴随着“飞花”的诞生,文学创作者饮酒作乐必须要飞花助兴了。 bot: 好的,我们可以玩飞花游戏。 you: 这是飞花游戏 bot: 对不起,我误解了你的意思。让我们继续玩飞花游戏吧!请说出下一个含有“月”字的词语或诗句: 回答:“但愿人长久”。 接下去的飞花令你来定吧。 you: 说一个 以鸟为关键词的飞花游戏 bot: 好的,让我们来一场以鸟为关键词的飞花游戏。 接下去的飞花令你来定吧。 you: exit 我们可能需要进一步训练这个工具才能让他成为一个飞花高手。

    1K21编辑于 2023-12-21
  • 来自专栏C语言与数据结构算法

    收集飞花碎片——C语言指针

    #include <stdio.h> int main() { int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; int* p = &arr[0]; int sz 规避野指针(3):及时将闲置指针设置成NULL #include <stdio.h> int main() { int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; int 个整数的数组 int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; // 打印第一个元素的地址 // &arr[0] 获取数组第一个元素的地址 ](指向10个整数数组的指针) printf("&arr = %p\n", &arr); // 打印整个数组地址加1后的地址 // 这里会移动整个数组的大小(10 * ]; // ptr是指向包含10个整数的数组的指针 解释:ptr先和*结合,说明p是⼀个指针变量,然后指针指向的是⼀个大小为10个整型的数组。

    25810编辑于 2025-11-18
  • 来自专栏C语言与数据结构算法

    收集飞花碎片——C语言内存函数

    char src[] = "Hello"; char dest[10]; memcpy(dest, src, 6); // 复制包括'\0'在内的6个字节 printf("%s\n", dest); char buf[10]; memset(buf, 'A', 5); buf[5] = '\0'; printf("%s\n", buf); // 输出 AAAAA www空间卷轴:memset

    17510编辑于 2025-11-13
  • 来自专栏C语言与数据结构算法

    收集飞花碎片——C语言常见概念

    人与人交流的是自然语言,如:汉语、英语、日语 那人与计算机交流就得用计算机语言 C语言就是众多编程语言中的一种,是一种底层语言

    19710编辑于 2025-11-18
  • 来自专栏C语言与数据结构算法

    收集飞花碎片——【C语言】文件操作

    SEEK_SET); 向前跳跃50 个字节:fseek(fp, -50L, SEEK_CUR); 跳转到文件末尾:fseek(fp, 0L, SEEK_END); 跳转到距离文件末尾 10 个字节的位置:fseek(fp, -10L, SEEK_END); 返回值: 成功时返回 0 失败时返回非零值(通常是由于在文本模式下尝试进行非法定位或文件不支持等原因) 6.6.2)

    18510编辑于 2025-11-13
  • 来自专栏C语言与数据结构算法

    收集飞花碎片——C语言数组

    #include <stdio.h> int main() { int arr[10] = {1,2,3,4,5,6,7,8,9,10}; int i = 0; for(i = 0; i < 10; i }; int i = 0; for(i = 0; i < 10; i++) { scanf("%d", &arr[i]); } for(i = 0; i < 10; i++) { printf("%d ", arr[i]); } return 0; } ⼀维数组在内存中的存储 ⼀维数组在内存中的存储 #include <stdio.h> int main() { int arr[10] = {1,2,3,4,5,6,7,8,9,10 (arr[0]); printf("%d\n", sz); return 0; } 这里的结果是:10,表示数组有10个元素。 #include <stdio.h> int main() { int i = 0; int arr[10] = {1,2,3,4,5,6,7,8,9,10}; for(i = 0;

    21710编辑于 2025-11-13
  • 来自专栏C语言与数据结构算法

    收集飞花碎片——C语言转义字符

    \a 响铃(警报) 7 终端可能会发出“滴”声 \b 退格(Backspace) 8 光标左移一格 \f 换页(Form Feed) 12 打印机换页,终端可能清屏 \n 换行(New Line) 10

    29810编辑于 2025-11-12
  • 来自专栏C语言与数据结构算法

    收集飞花碎片——C语言(数组+函数)

    //指针参数的调用 int x = 10, y = 20; swap(&x, &y); // 传入地址,交换 x 和 y 的值 printf("x=%d, y=%d\n", x, y); // 输出 : x=20, y=10 (3)函数的声明 如果函数定义在调用之后,需要先声明(告诉编译器函数的存在): #include <stdio.h> // 函数声明(原型) int add(int a, int ) • 形参如果是⼀维数组,数组⼤⼩可以省略不写 // 以下三种声明完全等效 void funcA(int arr[]) { ... } // 省略大小 void funcB(int arr[10 ; // data数组被清空 return 0; } 代码练习 #include <stdio.h> int main() { int arr[] = {1,2,3,4,5,6,7,8,9,10 自动存储期(局部变量) void func() { int auto_var = 10; // 函数调用时创建,函数结束时销毁 } 静态存储期() int global_var;

    27710编辑于 2025-11-13
  • 来自专栏C语言与数据结构算法

    收集飞花碎片——C语言变量和常量

    变量的初始化 语法 数据类型 变量名 = 初始值; 代码展示 int count = 10; // 定义并初始化为10 double pi = 3.14159; // 定义双精度浮点数并初始化 / 局部变量 // ... } 2)全局变量 概念: 在所有函数外部定义的变量 int globalVar; // 全局变量 void func1() { globalVar = 10 这里我们只作基本概念的解读 1) 指针变量 int *ptr; // 整型指针 char *str; // 字符型指针 void *vp; // 无类型指针 2) 数组变量 int arr[10 (a):(b)):使用三目运算符(条件运算符): 如果(a)>(b)为真,返回(a) 否则返回(b) int x = 10, y = 20; int max = MAX(x, y);

    19010编辑于 2025-11-13
  • 来自专栏C语言与数据结构算法

    收集飞花碎片——C语言分支与循环语句(下)

    前言 上一篇文章收集飞花碎片——C语言分支与循环结构(上)已经跟大家全面讲解了分支与循环的基础知识,这一张会通过几个程序设计项目来锻炼逻辑思维能力,难度从难到易,大家可以根据自己的需求去练习 练习一 得到的余数就是最低位,如:1234%10得到4 要想去掉n的最低位,找出倒数第⼆位,则使⽤ n=n/10 操作就可以去掉最低位的,如: n=1234/10得到123,123相较于1234就去掉了最低位 ,123%10就得到倒数第⼆位3。 while(num){ printf("%d",num%10); num /= 10; } return 0; } 练习七:计算1~100之间3的倍数的数字之和 #include ; b = i / 10 % 10; c = i / 100; int sum = pow(a, 3) + pow(b, 3) + pow(c, 3); if (i == sum&&i

    25810编辑于 2025-11-13
  • 来自专栏C语言与数据结构算法

    收集飞花碎片——C语言分支与循环语句(上)

    for (初始化; 条件; 迭代) { // 循环体 } 代码示例: for (int i = 0; i < 10; i++) { printf("%d\n", i); } 流程图演示 for (int i = 0; i < 10; i++) { if (i % 2 == 0) continue; // 跳过偶数 printf("%d ", i); // 仅打印奇数 }

    17510编辑于 2025-11-18
  • 来自专栏C语言与数据结构算法

    收集飞花碎片——C语言关键字typedef

    typedef unsigned int UINT; typedef char BYTE; UINT count = 10; // 等价于 unsigned int count = 10; BYTE typedef int(*parr_t)[5]; //新的类型名必须在*的右边 一维数组指针重命名 #include <stdio.h> int main() { int arr[5] = {10

    20510编辑于 2025-11-13
  • 来自专栏C语言与数据结构算法

    收集飞花碎片———C语言输入函数(应声虫)

    scanf 是C语言标准库中的一个输入函数,用于从标准输入(通常是键盘)读取格式化数据。

    40210编辑于 2025-11-12
  • 来自专栏Crossin的编程教室

    用Python+小程序实现诗词大会的飞花

    写在前面 在2018年下半年的某一天,偶然观看了《中国诗词大会》节目的飞花环节。 实现语音版飞花仅作为兴趣爱好,之前本来是用 Django 完成的,在朋友的安利之下改用 Sanic 重写。 飞花 整体架构如图所示 ? 架构如上图所示,接下来分享部分技术细节。 最后 以上是关于飞花应用的总结,总的来说还是挺满意这次实践。 有希望继续改进的同学可以在 github 上 fork 飞花代码库进行二次开发。

    3.2K40发布于 2019-07-08
  • 来自专栏C语言与数据结构算法

    收集飞花碎片——C语言字符串(纯干货)

    代码示例: char str[10]; scanf("%*s %s", str); // 跳过第一个单词,读取第二个 二、C语言字符串的库函数 <string.h> 是C语言中处理字符串和内存操作的重要头文件

    26710编辑于 2025-11-13
  • 来自专栏C语言与数据结构算法

    收集飞花碎片——C语言操作符与进制转换

    1.进制转换 在计算机编程的学习中,其实我们经常能听到2进制、8进制、10进制、16进制 这样的讲法,那是什么意思呢? 其实2进制、8进制、10进制、16进制是数值的不同表示形式而已。 比如:数值15的各种进制的表示方式 15的2进制:1111 15的8进制:17 15的10进制:15 15的16进制:F //16进制的数值之前写:0x //8进制的数值之前写:0 (1)二进制 我们先重点讲解一下二进制 14 * 16 2 16^2 = 256 0xD 13 * 256 3 16^3 = 4096 0xC 12 * 4096 4 16^4 = 65536 0xB 11 * 65536 (4)进制转换 10 移位规则:首先右移运算分为两种: 逻辑右移:左边填充0,右边丢弃 算术右移:左边用原来该值的符号位填充,右边丢弃 #include <stdio.h> int main(){ int num = 10 ];//创建数组 arr[9] = 10;//实⽤下标引⽤操作符。

    24510编辑于 2025-11-13
  • 来自专栏C语言与数据结构算法

    收集飞花碎片——C语言字符函数与字符串函数

    ); printf("十进制: %s\n", buffer); // "12345" // 二进制 itoa(10, buffer, 2); printf(" #include <string.h> char *strcpy(char *dest, const char *src); 代码示例 char src[] = "hello"; char dest[10 #include <stdio.h> #include <string.h> int main() { char src[] = "Hello World"; char dest[10 代码示例 我们看看0-10对应的错误码表示什么 #include <errno.h> #include <string.h> #include <stdio.h> //我们打印—下0~10这些错误码对应的信息 fflush(file); 10. fseek() 移动文件指针到指定位置。

    17010编辑于 2025-11-12
  • 来自专栏C语言与数据结构算法

    收集飞花碎片——【C语言】动态内存管理&&数据存储的内存结构

    我们先看看“不动态”的内存是什么样的: 静态/全局内存 (Static/Global): int global_var = 10; 这些变量在程序一开始运行时就被分配了,直到程序结束才释放。 \n"); // 此时应该做一些错误处理,比如退出程序 return 1; } // 现在你可以像使用普通数组一样使用它 my_array[0] = 10; my_array[99] 3.4)访问越界 “租了10平米的仓库,却往里塞了11平米的东西。” 你 malloc(10 * sizeof(int)),只申请了10个整数的空间,但你却试图访问 my_array[10](这是第11个元素) 二、数据存储的内存结构 计算机内存中的“数据存储”是什么? 当你写下: int x = 10; 这句代码看起来只是一个整数,但程序运行时,它必须存在某个地方才能被 CPU 操作。

    19410编辑于 2025-11-12
  • 来自专栏C语言与数据结构算法

    收集飞花碎片——【C语言】自定义类型(结构体、联合体、枚举)

    返回这个结构体(返回的是结构体的副本) } int main() { // 调用createPoint函数创建结构体实例 struct Point p1 = createPoint(10 struct Point* createPoint() { struct Point* p = malloc(sizeof(struct Point)); // 动态分配内存 p->x = 10 ,在 C99 中位段成员的类型也可以选择其他整型家族类型,比如:char 位段的成员名后边有一个冒号和一个数字 struct A { int _a:2; int _b:5; int _c:10

    18410编辑于 2025-11-13
  • 来自专栏C语言与数据结构算法

    收集飞花碎片——【C语言基本数据类型&&数据在内存中的存储】

    18,446,744,073,709,551,615 %llu 浮点类型 类型 存储大小 (通常) 有效数字位数 取值范围 (近似) 格式化说明符 float 4字节 (32位) 6-7位 ±1.18×10 ⁻³⁸ 到 ±3.4×10³⁸ %f, %e, %g double 8字节 (64位) 15-16位 ±2.23×10⁻³⁰⁸ 到 ±1.80×10³⁰⁸ %lf, %le, %lg long double 10/12/16字节 (实现相关) 18-19位或更多 范围更大 (实现相关) %Lf, %Le, %Lg float f = 3.14f; // f/F后缀表示float double ,不会在运行时计算 表达式 sizeof(类型) sizeof 表达式;//如果sizeof后面是表达式是不参与真实的运算的,根据表达式的类型得出大小 int main() { int a = 10 // 通常为4 sizeof(char); // 总是1 sizeof(float); // 通常为4 sizeof(double); // 通常为8 sizeof计算数组大小 int arr[10

    30310编辑于 2025-11-12
领券